我想在C中实现管道,例如 - $ ls | wc | wc

我写了以下代码 -

#include

#include

#include

void run_cmd(char *cmd, int* fd_in, int* fd_out)

{

int c = fork();

if (c==0)

{

if (fd_in != NULL)

{

close(fd_in[1]);

dup2(fd_in[0], 0);

}

if (fd_out != NULL)

{

close(fd_out[0]);

dup2(fd_out[1],1);

}

execlp(cmd, cmd, NULL);

}

}

int main(int argc, char **argv)

{

int fd_1[2], fd_2[2], i;

pipe(fd_1);

pipe(fd_2);

run_cmd(argv[1], NULL, fd_1);

for( i=2; i

{

if (i%2 == 0)

run_cmd(argv[i], fd_1, fd_2);

else

run_cmd(argv[i], fd_2, fd_1);

}

if (i%2 == 0)

run_cmd(argv[i], fd_1, NULL);

else

run_cmd(argv[i], fd_2, NULL);

}

这适用于两个参数,例如 - $./a.out ls wc

但是,当我尝试使用两个以上的参数时,它不起作用.

有人请告诉我我的代码有什么问题,或者其他任何方式吗?

管道在c语言中的作用,在C中实现管道相关推荐

  1. pass在c语言中的作用,Python语句中pass语句有什么作用?浅谈pass语句的用法

    pass语句就是好比是数学中的0,本身并没有任何实际意义,但是又是个确实存在的字符.所以,Pythonpass语句是空语句,是为了保持程序结构的完整性,pass不做任何事情,一般用做占位语句,作用与b ...

  2. C语言margin的作用是,css中margin是什么意思,margin作用是什么

    一.简介,甚么含义? margin为对象外边距间隔属性.假如对一个对象比方div配置了边框后,再设置margin就会察看到这个div外面孕育发生了间距边距. margin感导: 设置对象与此外对象的外 ...

  3. python在实际中的作用_Python面向对象中__init__的实际作用是什么?

    给个知乎的连接吧,知乎的例子说的应该是: 设计模式六大原则之一:迪米特法则,一个对象应该对其他对象保持最少的了解.如果类与类之间的关系越密切,耦合度越大,当一个类发生改变时,对另一个类的影响也越大. ...

  4. 存储服务器在监控中的作用,监控项目中存储服务器IPSAN云存储方案的优劣势对比...

    <监控项目中存储服务器IPSAN云存储方案的优劣势对比>由会员分享,可在线阅读,更多相关<监控项目中存储服务器IPSAN云存储方案的优劣势对比(4页珍藏版)>请在人人文库网上搜 ...

  5. html中em作用6,CSS中强大的EM

    使用CSS也好久了,但一直都是在使用"px"来设置Web元素的相关属性,未敢使用"em".主要原因是,对其并不什么了解,只知道一点概念性的东西,前段时间在项目中 ...

  6. 电容在电路中的作用、EMC中的功能。

    一.滤波电容在EMC中的功能 电容在PCB的EMC设计中,是使用最为广泛的器件.按照功能的不同,电容可以分为三种: 去耦(Decouple):打破系统或电路的端口之间的耦合,以保证正常的操作. 旁路( ...

  7. 谈VBS在Hacking中的作用———SQL Inject中的应用

    本文,已发于<黑客手册>07年10月刊 平常我们遇到有注入漏洞一类的网站大部分人都是用NBSI Or 阿D一类的注射工具.但有的站点的注射点很难构造,或者说注射语句比较特殊.如果用手工去注 ...

  8. oracle中recover作用,Oracle rman中restore和recover的区别

    在Oracle的备份与恢复的知识点中,经常会出现Restore 和 Recovery两个词. 由于这两个词在字典中的解释很接近,Oracle的官方文档中看到了以下解释. Restoration:A c ...

  9. 标记符在html中的作用,在HTML中,字体标记符包括()。

    [多选题]创业计划书具有哪些特征 [多选题]红外光谱中的弯曲振动包括:( ) [单选题]少儿力量训练应以 [判断题]一些种类的真菌能够传播植物病毒.( ) [多选题]MC=MR是厂商( )的必要条件. ...

最新文章

  1. Jenkins+Git+Maven持续集成经典教程
  2. R语言与数据分析(2)-R语言简介
  3. Java基础第十三天总结
  4. 一.Spring框架基础
  5. 17---Net基础加强
  6. Java:ChronicleMap第2部分,超级RAM映射
  7. Sublime Text 由于中文用户名导致无法安装插件
  8. oracle sha2,Oracle11.2.0.1在AMD CPU 64位硬件,32位操作系统下的BUG 8670579
  9. poj 2741 Colored Cubes(dfs暴力枚举)
  10. 虚拟桌面与代理服务器的那些事
  11. 测试远程服务器udp端口,测试远程udp端口
  12. 统计用区划代码和城乡划分代码编制规则
  13. python运行快捷键是什么_Python快捷键
  14. 苦才是人生的经典美言
  15. signal(SIGCHLD, SIG_IGN)
  16. 对《ToonSynth: Example-Based Synthesis of Hand-Colored Cartoon Animations》一文的理解(上)
  17. 计算机网络:P4.3-网络层(下)
  18. 关于VMware Desktone中的Slony和数据库
  19. 关于CreateProcess的问题
  20. Xshell下载安装教程和使用教程(超详细)

热门文章

  1. java集合提取最小的日期_提取Java集合的元素-Java 8方法
  2. java并发任务执行_Java并发性-任务反馈
  3. Java中集合的自定义运算符
  4. 必读:Java Java
  5. 使用GZIP和压缩数据
  6. 如何为每个URL连接设置自定义SSLSocketFactory的TrustManager
  7. Java Keystore教程
  8. 从Java执行可执行的命令行
  9. Java – 2012年回顾和未来预测
  10. 使用Eclipse在Amazon Ec2中部署Java Web应用程序的完整指南