linux 实验五 命名管道实验_第1页
linux 实验五 命名管道实验_第2页
linux 实验五 命名管道实验_第3页
linux 实验五 命名管道实验_第4页
linux 实验五 命名管道实验_第5页
全文预览已结束

下载本文档

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

文档简介

实验五命名管道实验研究mkfifo命令,在当前目录下创建一个myfifo的命名管道。(1)程序流程图:终端中输入:1用ls命令查看当前目录是)mkfifo否产生了名为fifo_channel的管道。fifo_channel(2)运行结果:guest-jcklN6nrx-MUC:*mkftfoftfo_channel3ueSt^kkIN6n@d2H^HJCt^-$Isexamples-desktop mkfifo,c f'ysystemrC 公共的 彻救 女村ftfo_channel nysystem nysystem.c-援板 国片 TH 桌IIIguest-xkIN6n^dzM-rtJC!-■?|2、用mkfifo()函数实现相同的功能。(1)程序流程图:mode用来简历文件的权限,该函数成功则返回0,失败时返回-1,并且设置errno.创建fifo文件mode用来简历文件的权限,该函数成功则返回0,失败时返回-1,并且设置errno.用的是函数mkfifo()(2)程序源代码:/*mk_fifo.c*/»tnclude^stdi。・b工超In匚Itide^fiys/typew•h>Pinclude^sys/stat『h>Sftncludecfcntl..#inrludecstdiouh>Bdeftnefifo_channelR./ftfo_chann.eli"tntmaln(tntargc3char*argv[])(tftmkfife(ftfo_channel.CJT^T)-1)〃如果创建后返回-1则显示错误信(perrort"cannottreatftfochannel");return1;了洪畋返回1}|return0; 〃成功返回日(3)运行结果:flfo_chanridflfo_channellguest-xkIN6n^dzx gcc.-oi'ikfifonkfifo.cgue5t-xklN6n^dzx-l*LJC; ./nkftfQtannottreatftfocharintl:Fileexists片皆«1

图女下乐面昔桌guest-xkIMn*dzM 片皆«1

图女下乐面昔桌examples.desktopnkftfo ntysystem 公共的FtIo_channel nkfifa.c nysystefflut 模板mkftfo,5mysysten.5观翱g戏M-xklNGn加疏-MUOS|3、编写一个服务器程序server.c,实现从管道myfifo中读取内容,并在终端中显示出来。打开一个命令行终端,运行server,然后打开另一个命令行终端,使用“cp文件1myfifo”命令把文件1的内容输出到myfifo,测试server.c的功能。(1)程序流程图:创建管道,打开

管道,读出数据利用命令创建管道,打开

管道,读出数据利用命令cp,把a的内容复制到管道中(2)程序源代码:Sinclude^stdto,hjjftftEl.udi'cs.ys/types,h>rftncliide-isys/stdt.h>ffincludecfcntl.Ntfinrlude<stdic.h>^definehannel"./fifo_channel2"intnatnflntargc,char*ar^v[]){'Intfd;charrmsg[BUFSIZ];ifCnikftfo(ftfo_channel.,Ei777)Bi-1J{perror("carnotcreatfifochannel'1);return1;}fd=cpen(ftfo_channelt0_ROONL¥):tf(rd=1>(perror("cannotopentheftfo");] if(read(fd,rmsg,BUF5IZ)==-1){p-Errnr(processcartndtre白d fraptfIfo");return1;)elseprtntffreceivenessagefromfiffl:Ss\n"Rr_msg):return财}l运行结果:Hfo£hanwhrifochannel?4、编写客户机程序,实现把指定文件输出到Hfo£hanwhrifochannel?4、编写客户机程序,实现把指定文件输出到myfifo的功能,从而实现和服务器程序的通信。测试该程序的功能。(1) 程序流程图:基本同3,就不再画了。(2) 程序源代码:/*server2.c*/ffincludetstdlfl,tn types.h>ffi.(iclude<&ys/statrfi>fftncludecfcntl.BineLude<stdid“h>itdeflneflfo_channel",/f:tfo_channel4"tntnai.n(lntargc.char*argv[]){tntfd,fdl;Intnum;char[BUFSIZ];charbuffer[nur];IfCargcl=2){printfCcomnand:Ksftlenane\nnHargv[0']);return1[1//writethtmesssgetoth«flfo"创建命菩昔道ifCnkflfotftfo_channelb0T77)==-1){perrort"cannottreatfifochannel11);return1;}〃打开命名茴道写入散据fd=apen(flfochanneI?0WRONLV);tf[fd==-l)(perror("carinotopenthefifo");)"打开5;写入的文忤tf((fdi=open(crgw[1],o_roonly[))=='i){perror^''cannot。网「theffle\nn):retorn1;} num=read(fdljbuffer );//tft文件fdW的内容buffer[nur】日L。M 〃向言道中与人数据*若返回T则显示失跛If(wrtte(fdfbuffer,nin -1){peirrgrCprocesscannatwritedatatofifa"1);return1;)tlstprlrttf('serdmE?ssdge: jbuffer)j"否削显示写信息到管道成功rtturn0;(3)实验结果:V■ dzx@dzK-MUG:™«T<rmlnal?K^dix-MlLlCs-$gcc-oserver^twnserwe

温馨提示

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

评论

0/150

提交评论