在这里,我们将为Linux中的管道创建一个C程序。在此程序中,我们将从输入流中读取一些文本,然后将其打印到输出屏幕。
首先,让我们学习有关Linux中管道的基础知识
管道用于传输数据,它可用于进程/命令/程序之间的通信,以在基于Linux或Unix的系统中在两者之间传输标准输出。
需要注意的重要一件事是管道是单向的,即数据可以在程序中从左向右或从右向左流动。
在这里,我们将创建一个管道,该管道将从用户那里读取输入并将其打印到输出屏幕。该实现采用大小为2的数组,该数组用于获取输入arr [0]和返回输出arr [1]。
Linux中管道的C程序
#include <errno.h> #include<string.h> #include <fcntl.h> #include <stdio.h> #include <stdlib.h> #include <sys/wait.h> #include <unistd.h> int main(){ int Pipe[2]; char string[100]; if (pipe(Pipe) == -1){ perror("Filed to create pipe"); exit(1); } scanf("%s", string); write(Pipe[1], string, strlen(string)+1); printf("\n"); read(Pipe[0], string, 5); printf("%s", string); }
输出结果
input: nhooo nhooo