Linux中管道的C程序

在这里,我们将为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