Je me demandais s'il y a une déclaration que je peux utiliser pour avoir un programme de sommeil indéfiniment (probablement en utilisant la fonction de sommeil ??). (Je fais évidemment cela en attente d'un signal qui va être livré à un moment de ce processus et il sera réveil) P>
3 Réponses :
vous voulez pause () . grève > p>
pause () code>
sigsuspend () code> . P>
N'utilisez pas Pause code>. Il a une condition de course inhérente à laquelle le signal que vous attendiez peut être livré juste avant la pause.
sigprocmask code> et
sigsuspend code> est la bonne façon de le gérer.
R .: Bon point. Une belle explication ici: gnu.org/s/hello/manual /libc/pause-problems.html et sur la page suivante.
Je ne pense pas qu'il y ait quelque chose comme ça dans le langage C. Il serait dépendant du système d'exploitation (j'ai exécuté la pré-standard C sur des systèmes qui n'avaient pas de capacité de sommeil intégrée), vous devez donc nous faire savoir quel OS. Je soupçonnerais quelque chose dans la famille UNIX de votre mention d'un signal, mais je pourrais bd mal.
Merci, mais je vous recommande de marquer la réponse d'Aschepler correct comme
pause () code> a des problèmes.