exp2c.c

来自「linux编程 操作系统试验报告」· C语言 代码 · 共 43 行

C
43
字号
#include<stdio.h>
#include<unistd.h>
#include<sys/types.h>

int main()
{
  int fd1[2];
  int fd2[2];
  char word[2];
  pid_t pid;
  int n;
  int i;
  if(pipe(fd1)<0)//创建管道
	printf("PIPE1 ERROR\n");
  else if(pipe(fd2)<0)
        printf("PIPE2 ERROR\n");
  else if((pid=fork())<0)
	printf("FORK ERROR\n");
  else  
  for(i=0;i<10;i++)
  {
	if(pid>0)
	{
        close(fd1[0]);//关闭读端
	write(fd1[1],"P\n",2);//写1管道
        close(fd2[1]);
	n=read(fd2[0],word,2);//读2管道
	write(STDOUT_FILENO,word,n);//输出到屏幕
	}
        else
	{
	close(fd1[1]);
	n=read(fd1[0],word,2);//读2管道
	write(STDOUT_FILENO,word,n);
	close(fd2[0]);
        write(fd2[1],"C\n",2);//写1管道
	}
  }
exit(0);
}


⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?