000
18.11.2004, 13:30 Uhr
mike
Pinguinhüpfer (Operator)
|
Hi! Ich habe ein kleines Ratespiel. Nun möchte ich, dass wenn er nach 3 Sekunden nicht die richtigte Zahl erraten hat, abbricht:
C++: |
#include <stdio.h> #include <signal.h> #include <sys/time.h> #include <sys/resource.h> #include <unistd.h>
void sigchld(int sig) { struct rusage usage; if(getrusage(RUSAGE_CHILDREN, &usage) == -1) fprintf(stderr,"ERR usage"); else printf("My childs used %d msecs of CPU power ..\n", usage.ru_utime.tv_usec);
puts("Child died"); }
int main(void) { pid_t pid; if((pid=fork()) < 0) fprintf(stderr,"fork error"); else if(pid == 0) { struct rlimit lim; lim.rlim_max = 3; setrlimit(RLIMIT_CPU, &lim); srand(time(NULL)); while(1) { if((rand()%10) == 5){ puts("You won!!"); exit(0); } else { puts("Wrong ... trying once more"); sleep(1); } } }
if(signal(SIGCHLD, sigchld) == SIG_ERR) fprintf(stderr, "error sighandler");
if(wait(NULL) != pid) fprintf(stderr, "wait error");
exit(0); }
|
Aber es tut sich nichts. Selbst bei der genutzten CPU Zeit kommt immer 0. Was mach ich falsch?
Danke im Voraus, mfg --
Dieser Post wurde am 18.11.2004 um 13:31 Uhr von mike editiert. |