我使用fork和execv来执行子进程。在父程序中,我有:如何从子进程读取返回码
int status;
wait(&status);
cout << "return code = " << status << endl;
是否等待子进程终止并显示它的返回码?
我使用fork和execv来执行子进程。在父程序中,我有:如何从子进程读取返回码
int status;
wait(&status);
cout << "return code = " << status << endl;
是否等待子进程终止并显示它的返回码?
是的,它应该从我读http://linux.die.net/man/2/wait
'wait(&status)'相当于'waitpid(-1,&status,0)',它将等待任何子进程。因此,只要只有一个子进程,代码将按预期工作 – mdec 2011-04-27 06:09:37
到目前为止,所有的答案都是错误的,因为甚至没有提到WEXITSTATUS。 – 2011-04-27 06:44:11
请注意,退出状态被编码为16位值的高位8位,并且该信号被编码为低位8位。如果进程没有死信号,那么低位是零;如果它死了一个信号,那么高位是零。有关官方POSIX定义,请参见['wait()'和'waitpid()'](http://pubs.opengroup.org/onlinepubs/9699919799/functions/wait.html);它没有提到8位组,但提供宏来获取状态和信号信息。 – 2011-04-27 06:52:05