微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

进程pipe理在C:发送数据到父进程

我正在做一个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连接清理的位置在哪里?

在pipe道中获取命令输出,C为Linux

堆的界限是什么?

在C#中运行命令行参数

最简洁的方法是读取子进程的标准输出

在C中,涉及管道:)

这不像你想象的那么可怕。 看看使用popen的标准示例。

编辑:如果这是你自己的过程叉,而不是叉执行,答案仍然是管道。

如果你真的想避免使用管道,并且愿意使用更多的模糊机制,我建议你看一下sigqueue(3) ,你可以使用它来发送一个整数到另一个进程。

共享内存也可以在这里工作。

查找shmget和shmat函数

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐