#define _POSIX_C_SOURCE 200112L #include #include #include #include #include #include #include "err.h" int main(int argc, char *argv[]) { int status; switch(fork()) { case -1: FATAL("fork"); break; case 0: // le fils execlp("/bin/ls", "ls", "/foo/bar", NULL); // NOT REACHED FATAL("exec"); default: // le pere wait(&status); if (WIFEXITED(status)) printf( "Fils terminé par exit(%d)\n", WEXITSTATUS(status)); else if (WIFSIGNALED(status)) printf( "Fils terminé par le signal %d\n", WTERMSIG(status)); } return EXIT_SUCCESS; }