noid
2004-05-06, 15:56:02
irgendwie ist die fkt nice() gar nicht nice. ich hab hier ein programm sinus
#include <stdio.h>
#define BREITE 60
#define OFFSET 60;
void sternchen(int anzahl)
{
int i;
for (i=0; i<anzahl; i++)
{
printf("*");
}
printf("\n");
}
void busySleep(int laenge)
{
int i,x = 2;
for (i=0; i<laenge; i++)
{
x+=x;
x+=x;
x+=x;
x+=x;
}
}
int main(int argc, char** argv)
{
double cntr=0.0;
int x, nice_value = 0;
if (argc >= 2) nice_value = atoi(argv[1]);
printf("%d\n",nice_value);
for (;;)
{
x = sin(cntr)*BREITE + OFFSET;
cntr += 0.1;
busySleep(599999);
if (nice(nice_value) == -1) break;
sternchen(x);
}
return 0;
}
wenn ich das programm aus der bash mit "nice -n 2 sinus" starte, dann hat sinus auch einen nicewert von 2. warum aber nicht wenn ich "sinus 2" in der bash angebe?
die doku zu nice() bringt auch nicht viel, die <unistd.h> ebenfalls nicht. es geht hier nur ums nice, die ausgabe des sinus auf dem terminal geht ohne probleme.
#include <stdio.h>
#define BREITE 60
#define OFFSET 60;
void sternchen(int anzahl)
{
int i;
for (i=0; i<anzahl; i++)
{
printf("*");
}
printf("\n");
}
void busySleep(int laenge)
{
int i,x = 2;
for (i=0; i<laenge; i++)
{
x+=x;
x+=x;
x+=x;
x+=x;
}
}
int main(int argc, char** argv)
{
double cntr=0.0;
int x, nice_value = 0;
if (argc >= 2) nice_value = atoi(argv[1]);
printf("%d\n",nice_value);
for (;;)
{
x = sin(cntr)*BREITE + OFFSET;
cntr += 0.1;
busySleep(599999);
if (nice(nice_value) == -1) break;
sternchen(x);
}
return 0;
}
wenn ich das programm aus der bash mit "nice -n 2 sinus" starte, dann hat sinus auch einen nicewert von 2. warum aber nicht wenn ich "sinus 2" in der bash angebe?
die doku zu nice() bringt auch nicht viel, die <unistd.h> ebenfalls nicht. es geht hier nur ums nice, die ausgabe des sinus auf dem terminal geht ohne probleme.