首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C语言 >

用C语言,兑现接收管道输出的结果,并显示

2013-06-26 
用C语言,实现接收管道输出的结果,并显示在shell里利用“|”管道干的事情就是io重定向,把“|”命令前的输出重定

用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 ;}

热点排行