我正在为操作系统课程编写一个程序,需要一种好的方法将整数从子进程传递给其父进程,最好不使用管道。
经过一些尝试和错误,我找到了以下代码来完成这个任务:
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);
}
}
但是在我的看法中这不是“正确”的(退出应该返回进程的退出状态以进行错误处理,而不是随机整数)。是否有更清晰的方法将结果“发送”给父进程而不使用这个技巧呢?