用C语言,实现接收管道输出的结果,并显示
在shell里利用“|”管道干的事情就是io重定向,把“|”命令前的输出重定向到“|”后的标准输入中也就是c程序的stdin流中,所以要实现楼主所得功能程序只要跟原来的样就行了。例如
#include <stdio.h> int main(void) { char string[512]; fgets(string ,512,stdin); puts(string); return 0; }
--------------------------------------------------------------
example:
#include <stdio.h> #include <string.h> #include <stdlib.h> #include <unistd.h> int main(void) { int len ; int apipe[2] ; int i ; char buf[256] ; if (pipe(apipe) == -1) { perror("can not create a pipe/n") ; exit(1) ; } while (fgets(buf , 256 , stdin)) { len = strlen(buf) ; if (write(apipe[1] , buf , len) != len) { perror("writing to pipe") ; break ; } for (i = 0 ; i < len ; i++) buf[i] = '/0' ; len = read(apipe[0] , buf , 256) ; if (len == -1) { perror("reading form pipe") ; break ; } if (write(1 , buf , len) != len) { perror("writing to stdout") ; exit(1) ; } } return 0 ; }
相关推荐
chensen 2020-11-14
拉斯厄尔高福 2020-11-04
杜倩 2020-10-29
拉斯厄尔高福 2020-10-19
嵌入式资讯精选 2020-10-15
zhaochen00 2020-10-13
penkgao 2020-10-13
yiyilanmei 2020-10-05
wanshiyingg 2020-09-29
Mars的自语 2020-09-27
shenwenjie 2020-09-24
一个逗逗 2020-09-22
flycony 2020-09-13
zhaochen00 2020-08-20
Biao 2020-08-20
qingsongzdq 2020-08-19
penkgao 2020-08-17
cetrolchen 2020-08-14
GuoSir 2020-08-07