la sortie d'un processus enfant (c)

Considérer cet extrait de code:

void do_child(void);

int main(void){
int n;
pid_t child;
printf("Write a number: ");
scanf("%d", &n);
if(n != 1){
exit(1);
}
child = fork();
if(child >= 0){ /* fork ok */
 if(child == 0){
    printf("Child pid: %d\n", getpid());
    do_child();
    _exit(0);
  }
 else{ /* parent */
    printf("Child parent: %d\n", getpid());
    _exit(0);
 }
}
else{ /* fallito */
    perror("No fork");
    return 1;
}
return EXIT_SUCCESS;
}

void do_child(void){
/* some code here */
if(1 != 1){
    /* what to write here?? _exit or exit*/
}   
}

Lors de la sortie d'un processus enfant il est préférable d'écrire _exit au lieu de exit mais si j'ai besoin d'appeler une fonction externe et dans cette fonction, je veux mettre une sortie, que dois-je écrire? _exit ou exit?

Chaque processus est quelqu'un de l'enfant (à l'exception du processus avec l'id 1), n'a pas de sens pour le choix _exit sur exit sur cette base.
Qui a dit que "c'est mieux d'écrire _exit au lieu de exit"?
unixguide.net/unix/programming/1.1.3.shtml
Cette page est trompé sur tout.
cela dépend beaucoup de la destructeurs eux-mêmes. E. g. si un destructeur nettoie un fichier temporaire ou autrement détruit une ressource utilisée par les autres processus, l'exécution de ces prématurément, pourrait être mauvais en effet. Le noyau peut nettoyer des trucs comme des descripteurs de fichiers peuvent très bien _exit sans avoir besoin de les destructeurs pour que.

OriginalL'auteur polslinux | 2012-09-02