我正在为 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);
}
}
但这对我来说看起来并不“正确”(exit 应该返回进程的退出状态以进行错误处理,而不是随机整数)。有没有一种更简洁的方法可以在不使用此技巧的情况下将结果“发送”到父进程?