c - C Pipe 中的 Unix Shell 问题

标签 c shell unix fork pipe

我目前正在开发 unix shell c。我的问题是管道,我跑了很多论坛都无法解决。 我浏览了一个临时文件。

提前谢谢您。

此处代码:http://pastebin.com/cuGbJ6XD

最佳答案

您想要查看“man 2 pipeline”、“man 2 dup2”和“man 3 popen”。前两个是您需要的,最后一个是您正在尝试构建但应该提供想法的子集。

基本步骤
- fork
- 创建管道
- 再次 fork
* 在 fork 的一侧,关闭 stdout (1) 并将管道输出 dup2 为 1
* 在 fork 的另一侧,关闭 stdin (0) 并将 dup2 管道输入设置为 0
* 两边,关闭原来的管道描述符
- 在 fork 的每一侧,执行正确的程序。

已经有一段时间了,但这就是我所记得的。

关于c - C Pipe 中的 Unix Shell 问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13943470/

相关文章:

c++ - Unix:如何清除串口I/O缓冲区?

c - gcc:链接时替换

c - 我的程序在哪里犯了错误,我认为这是一个逻辑错误,但我找不到它

c++ - 为什么 openMP 取消构造不取消工作共享区域?

c - 使用 NetBeans 的 Linux 静态库中缺少符号

shell - 如何将一个文件中的值与另一文件中的值进行比较

macos - 如何为 Mac OS X 编写启动脚本?

linux - 用于删除文件中单词的 Shell 脚本

algorithm - *nix 上的 c4.5 算法实现

java - 在unix中部署在tomcat上时如何获取应用服务器地址