Considere este fragmento de código:cómo salir de un proceso hijo - _exit() frente a la salida
pid_t cpid = fork();
if (cpid == -1) {
perror("fork");
exit(EXIT_FAILURE);
}
if (cpid == 0) { // in child
execvp(argv[1], argv + 1);
perror("execvp");
_exit(EXIT_FAILURE);
}
// in parent
¿Cómo tengo salir del proceso de niño si vuelve execvp? ¿Debo usar exit() o _exit()?
+1 Desea que el proceso secundario fallido salga silenciosamente como si nunca se hubiera creado. –
Bueno, ya que el antiguo estándar C permitía al enlazador resolver mayúsculas y minúsculas _Salir() no puede ser una función de biblioteca estándar, ya que entraría en conflicto con el antiguo _exit(). Lo siento. – Joshua
Al contrario. _Exit (3) es una biblioteca C estándar (ISO C99). _exit (2) es una llamada de sistema POSIX.1 y no un estándar de C. –