Ich habe eine Zeitschaltuhr nach einigen Beispielen aus dem Internet geschrieben:
void fun(int i)
{
struct itimerval to;
//do something
signal(SIGALRM, fun);
to.it_interval.tv_sec = 0;
to.it_interval.tv_usec = 0;
to.it_value.tv_sec = 60;
to.it_value.tv_usec = 0;
setitimer(ITIMER_REAL, &to, 0);
}
in der Hauptfunktion rufe ich diesen Spaß nur einmal auf und führe dann dort eine while-Schleife aus.
Das Programm verhält sich gut, außer dass es die CPU voll auslastet (zu 99% oder 100%), aber wenn ich die while-Schleife entferne, wird die "fun"-Funktion nur einmal aufgerufen. Wie kann ich verhindern, dass sie regelmäßig aufgerufen wird, ohne den Prozessor zu 100% zu belasten?