kill() - invia un segnale ad un processo
#include #include int kill(pid_t pid, int sig);
Tramite la system call kill() e' possibile inviare un segnale ad un process group o ad un processo.
Se il pid e': > 0 il segnale sig e' inviato al processo avente il pid uguale a pid. 0 il segnale sig e' inviato ad ogni processo nel process group del processo corrente. -1 il segnale sig e' inviato ad ogni processo eccetto per il primo. L'ordine di invio del segnale va dal processo che ha il pid piu' grande nella tabella dei processi, a quello avente il pid piu' piccolo. < -1 il segnale e' inviato a ogni processo che ha il process group uguale al valore assoluto del pid. Se sig e' 0, il segnale non viene inviato, ma viene fatta ugualmente una ricerca degli errori. Cio' e' utile per verificare se un pid e' associato a qualche processo.
Il processo che invia il segnale e i processi che lo ricevono, devono avere lo stesso user ID effettivo, a meno che a inviare il segnale sia il super-utente.
In caso di successo, kill() ritorna 0.
In caso di errore, viene ritornato -1 e la variabile errno e' settata con il codice di errore.
Non e' possibile inviare segnali al processo avente pid numero 1. Questo processo speciale e' il processo init chiamato all'inizializzazione del sistema ed e' il padre di tutti i processi.
Questo garantisce che init non venga terminato accidentalmente a causa dell'invio di un segnale, fermando l'intero sistema.
SVr4, SVID, POSIX.1, X/OPEN, BSD 4.3
alarm() killpg() pause() signal() sleep() wait()
Indice linguaggio C |
Indice librerie C |
Umberto Zappi Home Page |
Indice funzioni C |