2023年操作系统实验报告实验五_第1页
2023年操作系统实验报告实验五_第2页
2023年操作系统实验报告实验五_第3页
2023年操作系统实验报告实验五_第4页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

实验五:管道通信实验内容:.阅读以下程序:inc1ude<unistd.h>inc1ude<stdio.h>incIude<stdlib.h>main()(intfiledes[2];charbuffer[80];if(pipe(filedes)<0)//建立管道,filedes[0]为管道里的读取端,filedes[1]则为管道的写入端//成功则返回零,否则返回・1,错误因素存于errno中err_quit(/zpipeerror");f(fork()>0){chars[]=Mhello!\n”;c1ose(filedes[0]);//关闭filedes[0]文献write(filedes[l],s,sizeof(s)):〃s所指的内存写入到fi1edes[1]文献内close(filedes[1]);//关闭filedes⑼文献}else{close(filedes[l]);read(fiIedes[0],buffec80);//把filedes⑼文献传送80个字节到buffer缓冲区内printf("%s”,buffer);close(fi1edes[0]);编译并运营程序,分析程序执行过程和结果,注释程序重要语句。#include<unistd.h>#include<stdio.h>/Include<stdltb.h>main()(tntftledes[2];charbuffer[80];if(ptpe(filedes)<0)//err_quit(,,pipeerrorw);printf("pipeerror");if(fork()>0){chars[]="hello!\n";close(filedes[0]);write(filedes[l],s,sizeof(s));close(filedes[l]);}else{close(ftledes[l]);read(filedes[O],buffer,80);printfbuffer);close(ftledes[0]);))user@ubuntu:->vi5-1.cuser@ubuntu:-$gcc5-1.c-o5-1user@ubuntu:~$~/5-lhello!user@ubuntu:-$-/5-lhello!use「@ubuntu:~$,.阅读以下程序:include<sys/types.h>inc1ude<sys/stat.h>incIude<fcntl.h>main()charbuffer[80];intfd;un1ink(FIFO);〃删除FIFO文献mkfifo(FlFO,0666);I3//FIF0是管道名,0666是权限if(fork()>0){chars[]="he1lo!\n";fd=open(FIFO,O_WRONLY);//以只写方式打开文献F1FOwrite(fd,s/sizeof(s));//把字符数组s的内存写入sizeof(s)个字节到参数fd所指的文献内close(fd);〃关闭该文献,dose()会让数据写回磁盘,并释放该文献所占用的资源}e1se{fd=open(FIFO,O_RDONLY);read(fd,buffer,80);printf("%s〃,buffer);c1ose(fd);)编译并运营程序,分析程序执行过程和结果,注释程序重要语句。#tnclude<stdto.h>#tnclude<sys/types.h>#include<sys/stat.h>#tnclude<fcntl.h>main(){charbuffer[80];intfd;unlink(M5-2M);mkfifo(H5-2H,0666);〃FIFO:5-2是管道名,0666是权限tf(fork()>0){chars[]="hello!\nM;fd=open(H5-2M,O_WRONLY);wrtte(fd,s,sizeof(s));close(fd);}else{fd=open("5-2H,0_RD0NLY);read(fd,buffer,80);printf(H%sH,buffer);close(fd);))user@ubuntu:-$gcc5-2.c-o5-2user@ubuntu:~$~/5・2hello!use「@ubuntu:~$,.阅读以下程序:#include<stdio.h>main()FILE*fp;charbuffer[80];fp=popen(Mcat/etc/passwd","r");/*调用fork。产生子进程,然后从子进程中调用/bin/sh-c来执行cat/etc/passwd。参数代表读取,popen()会建立管道连到子进程的标准输出设备或标准输入设备,然后返回一个文献指针。*/fgets(buffer,sizeoffbuffer),fp);〃从fp文献中读取sizeof(buffer)-1个字符到bufferprintf("%s”,buffer);pc1ose(fp);//关闭文献fp)编译并运营程序,分析程序执行过程和结果,注释程序重要语句。#include<stdio.

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论