管道在c语言中的作用,在C中实现管道
我想在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中实现管道相关推荐
- pass在c语言中的作用,Python语句中pass语句有什么作用?浅谈pass语句的用法
pass语句就是好比是数学中的0,本身并没有任何实际意义,但是又是个确实存在的字符.所以,Pythonpass语句是空语句,是为了保持程序结构的完整性,pass不做任何事情,一般用做占位语句,作用与b ...
- C语言margin的作用是,css中margin是什么意思,margin作用是什么
一.简介,甚么含义? margin为对象外边距间隔属性.假如对一个对象比方div配置了边框后,再设置margin就会察看到这个div外面孕育发生了间距边距. margin感导: 设置对象与此外对象的外 ...
- python在实际中的作用_Python面向对象中__init__的实际作用是什么?
给个知乎的连接吧,知乎的例子说的应该是: 设计模式六大原则之一:迪米特法则,一个对象应该对其他对象保持最少的了解.如果类与类之间的关系越密切,耦合度越大,当一个类发生改变时,对另一个类的影响也越大. ...
- 存储服务器在监控中的作用,监控项目中存储服务器IPSAN云存储方案的优劣势对比...
<监控项目中存储服务器IPSAN云存储方案的优劣势对比>由会员分享,可在线阅读,更多相关<监控项目中存储服务器IPSAN云存储方案的优劣势对比(4页珍藏版)>请在人人文库网上搜 ...
- html中em作用6,CSS中强大的EM
使用CSS也好久了,但一直都是在使用"px"来设置Web元素的相关属性,未敢使用"em".主要原因是,对其并不什么了解,只知道一点概念性的东西,前段时间在项目中 ...
- 电容在电路中的作用、EMC中的功能。
一.滤波电容在EMC中的功能 电容在PCB的EMC设计中,是使用最为广泛的器件.按照功能的不同,电容可以分为三种: 去耦(Decouple):打破系统或电路的端口之间的耦合,以保证正常的操作. 旁路( ...
- 谈VBS在Hacking中的作用———SQL Inject中的应用
本文,已发于<黑客手册>07年10月刊 平常我们遇到有注入漏洞一类的网站大部分人都是用NBSI Or 阿D一类的注射工具.但有的站点的注射点很难构造,或者说注射语句比较特殊.如果用手工去注 ...
- oracle中recover作用,Oracle rman中restore和recover的区别
在Oracle的备份与恢复的知识点中,经常会出现Restore 和 Recovery两个词. 由于这两个词在字典中的解释很接近,Oracle的官方文档中看到了以下解释. Restoration:A c ...
- 标记符在html中的作用,在HTML中,字体标记符包括()。
[多选题]创业计划书具有哪些特征 [多选题]红外光谱中的弯曲振动包括:( ) [单选题]少儿力量训练应以 [判断题]一些种类的真菌能够传播植物病毒.( ) [多选题]MC=MR是厂商( )的必要条件. ...
最新文章
- Jenkins+Git+Maven持续集成经典教程
- R语言与数据分析(2)-R语言简介
- Java基础第十三天总结
- 一.Spring框架基础
- 17---Net基础加强
- Java:ChronicleMap第2部分,超级RAM映射
- Sublime Text 由于中文用户名导致无法安装插件
- oracle sha2,Oracle11.2.0.1在AMD CPU 64位硬件,32位操作系统下的BUG 8670579
- poj 2741 Colored Cubes(dfs暴力枚举)
- 虚拟桌面与代理服务器的那些事
- 测试远程服务器udp端口,测试远程udp端口
- 统计用区划代码和城乡划分代码编制规则
- python运行快捷键是什么_Python快捷键
- 苦才是人生的经典美言
- signal(SIGCHLD, SIG_IGN)
- 对《ToonSynth: Example-Based Synthesis of Hand-Colored Cartoon Animations》一文的理解(上)
- 计算机网络:P4.3-网络层(下)
- 关于VMware Desktone中的Slony和数据库
- 关于CreateProcess的问题
- Xshell下载安装教程和使用教程(超详细)