2010-07-01 9 views

Respuesta

5

De página del manual sleep() función:

La función sleep() suspende la ejecución del subproceso de llamada hasta que segundos han transcurrido segundos o se produzca una señal al hilo y su acción es invocar una función capturadora de señales o para terminar el hilo o proceso. La actividad del sistema puede alargar el sueño en una cantidad indeterminada.

Por lo tanto, si se envía una señal a la aplicación, su ejecución se reanuda desde la instrucción después de la llamada de espera.

+0

Y al enviar una señal, significa usar la alarma()? – sleep

+1

Sí. Para enviar la señal para una aplicación externa puede usar la función kill (process_id, sig), si está en un sistema operativo * unix. – kist

+2

@sleep: No, no use 'alarm'. Su página de manual dice: "sleep (3) se puede implementar usando SIGALRM, mezclar llamadas a alarm() y sleep (3) es una mala idea". Para enviar una señal, simplemente use 'raise (3)', 'kill (2)', 'killpg (2)', 'pthread_kill (3)' o 'tgkill (2)'. Utilice una de las señales definidas por el usuario 'SIGUSR1' o' SIGUSR2'. Ver también 'señal (7)'. – Philipp

Cuestiones relacionadas