操作系统第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里:

实际操作如下:

 

 

 

posted @ 2020-04-17 18:26  baolong22  阅读(129)  评论(0编辑  收藏  举报