我做平常叉+ EXEC組合:如何等待進程子進程?
int sockets [2];
socketpair (AF_LOCAL, SOCK_STREAM, 0, sockets);
int pid = fork();
if (pid == 0) {
// child
dup2 (sockets[0], STDIN_FILENO);
dup2 (sockets[0], STDOUT_FILENO);
execvp (argv[0], argv);
_exit (123);
}
// parent
close (sockets[0]);
// TODO wait and see if child crashes
是否有可能要等到孩子崩潰或開始等待上閱讀(?)?
爲什麼不使用信號在另一個線程上指出(http://stackoverflow.com/questions/1584956/how-to-handle-execvp-errors-after-fork/1584994#1584994)? – 2009-10-18 21:41:18
因爲如果孩子不會死的話,我不會得到SIGCHLD,但是在閱讀時停止。 (或者我會嗎?) – 2009-10-18 22:08:36