10
janvier
2012
Terminaison de processus
janvier
2012
Un article de Kirilenko
Pas de commentaires
Un processus peut se terminer suite à l’appel de la fonction :
void exit(int status);
de stdlib.h.
status est un entier, qui permet d’indiquer la valeur de retour du processus. Conventionnellement, on utilise la valeur de 0 pour indiquer une sortie correcte, ou une autre valeur pour indiquer l’erreur. Exemple :
#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
#include <sys/types.h>
void task(void) {
puts("Child process... end.");
exit(0);
}
int main(void) {
pid_t p;
p = fork();
switch (p) {
case -1:
perror("fork");
break;
case 0:
task();
break;
default:
puts("Father process...");
break;
}
return EXIT_SUCCESS;
}
#include <stdlib.h>
#include <unistd.h>
#include <sys/types.h>
void task(void) {
puts("Child process... end.");
exit(0);
}
int main(void) {
pid_t p;
p = fork();
switch (p) {
case -1:
perror("fork");
break;
case 0:
task();
break;
default:
puts("Father process...");
break;
}
return EXIT_SUCCESS;
}
On pourra récupérer la valeur envoyée à exit par un processus fils par son processus père, et ce sera l’objet d’un prochain article plus complet, concernant la synchronisation des processus.