我正在做一个Operative Sytems类的程序,我需要一个很好的方法来将一个整数从subprocess传递给它的父进程,最好不使用pipe道。
经过一些尝试和错误,我得到了这样的工作:
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 %dn",result); } }
但是这对我来说并不“正确”(退出应该返回error handling的进程退出状态,而不是随机的整数)。 有没有一种更清洁的方式来将结果“发送”到父进程而不使用这个技巧?
如何杀死Linux中的特定进程?
Java中的进程pipe理和EventWaiter
如何防止脚本被暂停停止?
杀害分叉的孩子杀害父母?
线程的最大数目
Linux内核:线程与进程 – task_struct vs thread_info
Linux内核在进程死亡后进行处理和TCP连接清理的位置在哪里?
堆的界限是什么?
在C#中运行命令行参数
在C中,涉及管道:)
这不像你想象的那么可怕。 看看使用popen的标准示例。
编辑:如果这是你自己的过程叉,而不是叉执行,答案仍然是管道。
如果你真的想避免使用管道,并且愿意使用更多的模糊机制,我建议你看一下sigqueue(3) ,你可以使用它来发送一个整数到另一个进程。
共享内存也可以在这里工作。
查找shmget和shmat函数
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。