Pregunta

En mi sencilla carcasa a medida que estoy leyendo comandos de la entrada estándar y ejecutarlos con execvp (). Antes de esto, creo un tenedor del proceso actual y que llamo el execvp () en ese proceso hijo, justo después de eso, llamo a la salida (0).

Algo como esto:

pid = fork();

if(pid == -1) {
    perror("fork");
    exit(1);
}

if(pid == 0) {
    // CHILD PROCESS CODE GOES HERE...
    execvp(pArgs[0], pArgs);
    exit(0);
} else {
    // PARENT PROCESS CODE GOES HERE...
}

Ahora, los comandos se ejecutan con execvp () puede devolver errores correctos? Quiero manejar correctamente y que en este momento, siempre estoy llamando a exit (0), lo que significa que el proceso hijo siempre tendrá un estado "OK".

¿Cómo puedo devolver el estado correcto de la execvp () llamar y lo puso en la salida () llamar? ¿Debo obtener el valor int que execvp () devoluciones y pasarlo como una salida () argumento en lugar de 0. ¿Es eso suficiente y correcta?

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top