用C语言,兑现接收管道输出的结果,并显示
用C语言,实现接收管道输出的结果,并显示
在shell里利用“|”管道干的事情就是io重定向,把“|”命令前的输出重定向到“|”后的标准输入中也就是c程序的stdin流中,所以要实现楼主所得功能程序只要跟原来的样就行了。例如
--------------------------
example:
在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 ; }