exp3a.c

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

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

int main()
{
  int fd[2];
  char word[2];
  pid_t pid;
  int n;

  if(pipe(fd)<0)
	printf("PIPE ERROR\n");
  
  if((pid=fork())<0)
	printf("FORK ERROR\n");

  else  
  while(1)
  {
	if(pid>0)
	{
		close(fd[0]);//关读端
		scanf("%s",&word);
	
		if(word[0]>='a'&&word[0]<='w'||word[0]>='y'&&word[0]<='z')
		{  
		   word[0]=word[0]-32;//小写转化为大写
		   write(fd[1],word,2);//写管道
		}
		
		else
		   if(word[0]=='x')
			break;
		   else
			printf("INPUT ERROR\n");
	}
		
	else
	{
		close(fd[1]);//关写端
		n=read(fd[0],word,2);//读管道
		write(STDOUT_FILENO,word,n);//输出到屏幕

	}
  }
}



⌨️ 快捷键说明

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