7
votes

Dormez indéfiniment

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)


2 commentaires

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 () a des problèmes.


3 Réponses :


8
votes

vous voulez pause () .

EDIT: Les circonstances les plus probables dans lesquelles vous voudrez peut-être utiliser pause () Causer une condition de course , donc préférer sigsuspend () .


2 commentaires

N'utilisez pas Pause . Il a une condition de course inhérente à laquelle le signal que vous attendiez peut être livré juste avant la pause. sigprocmask et sigsuspend 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.



4
votes

sur Unix, voir Pause ou sigsuspend .


0 commentaires

1
votes

et sous Windows utilise SLEEP (INFINITE)


1 commentaires

Ça devrait être dormir (infini)