我正在为Operative Sytems类做一个程序,我需要一个很好的方法将子进程中的整数传递给它的父进程,最好不使用管道。
经过一些尝试和错误后,我得到了这样的工作:
pid_t pid_son;
int status;
if( (pid_son = fork()) >= 0) {
if(pid_son == 0) {
int result = 0;
// Make some arithmetic
exit(result);
}
else {
while(pid_son != wait(&status));
printf("The result is %d\n",result);
}
}
但是,这看起来并没有"正确"对我来说(退出应该返回进程'退出状态以进行错误处理,而不是随机整数)。是否有更清洁的方式来发送"父进程的结果没有使用这个技巧?