Your Browser is not longer supported
Please use Google Chrome, Mozilla Firefox or Microsoft Edge to view the page correctly
Loading...
{{viewport.spaceProperty.prod}}
alarm - Alarmsignal steuern
&pagelevel(4)&pagelevel
Definition | #include <unistd.h> Optional #include <signal.h> (Ende) unsigned int alarm(unsigned int seconds); |
Beschreibung | alarm() veranlasst das System, dem aufrufenden Prozess das Signal SIGALRM zu senden, nachdem die Zeitspanne seconds in Echtzeit-Sekunden vergangen ist (siehe auch signal.h ).
Wenn seconds gleich 0 ist, wird eine evtl. vorangegangene Alarmanforderung gelöscht. Alarmanforderungen werden nicht auf den Stack geschrieben: Nur SIGALRM kann auf diese Art erzeugt werden. Wenn das Signal SIGALRM noch nicht erzeugt wurde, dann verursacht der Aufruf eine Neufestsetzung des Zeitpunkts, zu dem SIGALRM erzeugt wird. Wechselwirkungen zwischen alarm() und den Funktionen setitimer() , ualarm() oder usleep() sind undefiniert. Werden Threads verwendet, so wirkt sich die Funktion auf den Prozess oder auf einen Thread wie folgt aus: Ein SIGALRM -Signal wird für den Prozess generiert, wenn die angegebene Zeit abgelaufen ist. BS2000 Wenn das Signal nicht abgefangen wird (siehe auch signal() ), wird das Programm mit exit(-1) beendet. (Ende)
|
Returnwert | Restzeit in Sekunden, bis SIGALRM erzeugt worden wäre |
|
| wenn es einen vorangegangenen alarm -Aufruf mit Restzeit in der Alarmuhr gegeben hat. |
| 0 | wenn es keinen vorangegangenen alarm -Aufruf gegeben hat. |
| alarm() ist immer erfolgreich.
|
Hinweise |
fork() löscht anstehende Alarmanforderungen im Sohnprozess. Ein neues Prozessabbild, das durch eine der exec -Funktionen erzeugt wurde, übernimmt die bis zu einem Alarmsignal verbleibende Zeit der Alarmuhr aus dem alten Prozessabbild.
Vergabeverzögerungen für den Prozessor können verhindern, dass der Prozess das Signal sofort nach seiner Erzeugung behandelt. BS2000 SIGALRM entspricht der STXIT-Ereignisklasse RTIMER (Intervallzeitgeber Realzeit). (Ende) |
Siehe auch | exec() , fork() , getitimer() , pause() , sigaction() , ualarm() , usleep() , signal.h , unistd.h , Abschnitt "Signale“.
|