用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 ;
} 相关推荐
拉斯厄尔高福 2020-11-04
嵌入式资讯精选 2020-10-15
zhaochen00 2020-10-13
penkgao 2020-10-13
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