操作系统第3次实验报告:管道
- 姓名 那宝龙
- 学号 201821121054
- 班级 计算1812
1. 编写程序
write
1 #include<stdio.h> 2 #include<unistd.h> 3 #include<sys/types.h> 4 #include<sys/stat.h> 5 #include<string.h> 6 #include<fcntl.h> 7 int main(){ 8 int bl = open("fifo2",O_WRONLY); 9 if(bl == -1){ 10 perror("mefifo"); 11 return -1; 12 } 13 char bf[1024]; 14 while(1){ 15 fgets(bf,1024,stdin); 16 write(bl,bf,strlen(bf)); 17 } 18 return 0; 19 } ~
read
1 #include<stdio.h> 2 #include<unistd.h> 3 #include<sys/types.h> 4 #include<sys/stat.h> 5 #include<string.h> 6 #include<fcntl.h> 7 int main(){ 8 int bl = open("fifo2",O_RDONLY); 9 if(bl == -1){ 10 perror("mkfifo"); 11 return -1; 12 } 13 char bf[1024]; 14 while(1){ 15 int ret = read (bl,bf,1024); 16 bf[ret] = '\0'; 17 printf("读取到: %s\n",bf); 18 } 19 return 0; 20 } ~
2. 分析运行结果
同时开启两个程序后,在write里输入内容按回车就会发送到read里:
实际操作如下: