Terminer proprement un processus avec kill
bonjour,
j'ai un processus fils qui tourne en tache de fond. Je dois le tuer a un moment donne depuis le processus pere avec l'instruction kill en utilisant SIGTERM.
Le code du processus fils:
Code:
1 2 3 4 5 6 7 8 9
|
int fd = open(.....); //ligne serie
while(1)
{
//acquisition de donnees qui peuvent durer quelques ms
write(fd, donnees);
sleep(1);
}
close(fd); |
Je me pose la question: kill arrivant de facon totalement asynchrone, quelle garantie ai-je que mon processus fils se terminera correctement a la fin de son boulot et non pas au milieu d'une acquisition ou d'un write ou sans faire le close?
Les pages de man ne sont pas tres explicite a ce sujet. (je trouve...)
Merci.