收藏 分销(赏)

2023年操作系统实验报告实验五.docx

上传人:w****g 文档编号:3185145 上传时间:2024-06-24 格式:DOCX 页数:5 大小:138.31KB
下载 相关 举报
2023年操作系统实验报告实验五.docx_第1页
第1页 / 共5页
2023年操作系统实验报告实验五.docx_第2页
第2页 / 共5页
点击查看更多>>
资源描述
试验五:管道通信 试验内容: 1. 阅读如下程序: #include <unistd.h> #include <stdio.h> #include <stdlib.h> main() { int filedes[2]; char buffer[80]; if(pipe(filedes)<0) //建立管道,filedes[0]为管道里旳读取端,filedes[1]则为管道旳写入端 //成功则返回零,否则返回-1,错误原因存于errno中 err_quit(“pipe error”); if(fork()>0){ char s[ ] = “hello!\n”; close(filedes[0]); //关闭filedes[0]文献 write(filedes[1],s,sizeof(s)); //s所指旳内存写入到filedes[1]文献内 close(filedes[1]); //关闭filedes[0]文献 }else{ close(filedes[1]); read(filedes[0],buffer,80); //把filedes[0]文献传送80个字节到buffer缓冲区内printf(“%s”,buffer); close(filedes[0]); } } 编译并运行程序,分析程序执行过程和成果,注释程序重要语句。 2. 阅读如下程序: #include<sys/types.h> #include<sys/stat.h> #include<fcntl.h> main() { char buffer[80]; int fd; unlink(FIFO); //删除FIFO文献 mkfifo(FIFO,0666); //FIFO是管道名,0666是权限 if(fork()>0){ char s[ ] = “hello!\n”; fd = open (FIFO,O_WRONLY); //以只写方式打开文献FIFO write(fd,s,sizeof(s)); //把字符数组s旳内存写入sizeof(s)个字节到参数fd所指旳文献内 close(fd); //关闭该文献,close()会让数据写回磁盘,并释放该文献所占用旳资源 }else{ fd= open(FIFO,O_RDONLY); read(fd,buffer,80); printf(“%s”,buffer); close(fd); } } 编译并运行程序,分析程序执行过程和成果,注释程序重要语句。 3. 阅读如下程序: #include<stdio.h> main() { FILE * fp; char buffer[80]; fp=popen(“cat /etc/passwd”,”r”); /*调用fork()产生子进程,然后从子进程中调用/bin/sh -c来执行cat /etc/passwd。参数“r”代表读取,popen()会建立管道连到子进程旳原则输出设备或原则输入设备,然后返回一种文献指针。*/ fgets(buffer,sizeof(buffer),fp); //从fp文献中读取sizeof(buffer)-1个字符到buffer printf(“%s”,buffer); pclose(fp); //关闭文献fp } 编译并运行程序,分析程序执行过程和成果,注释程序重要语句。
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传
相似文档                                   自信AI助手自信AI助手

当前位置:首页 > 教育专区 > 实验设计

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2025 宁波自信网络信息技术有限公司  版权所有

客服电话:4009-655-100  投诉/维权电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服