unix实验报告7_第1页
unix实验报告7_第2页
unix实验报告7_第3页
全文预览已结束

下载本文档

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

文档简介

1、本文格式为Word版,下载可任意编辑unix实验报告7 试验 七 管道 e pipe 和 和 n popen 通信 试验目的 1. 把握无名管道 pipe 的原理 2. 把握管道的应用及重定向。 3. 熟识 popen 创建管道的方式及应用程序设计; 试验内容 1. (1) 在命令行下执行 ls l |grep .c 命令,查看运行结果。 (2)设计一个程序,要求创建一个管道 PIPE,复制进程,父进程运行命令"ls -l',把运行结果写入管道,子进程从管道中读取"ls -l'的结果,把读出的作为输入运行"grep .c'。即实现"

2、; ls l |grep .c'功能。参考课件 ch4 P52,54。 程序源代码: #include stdio.h #includesignal.h #includeunistd.h #includestdlib.h int main () int fd2; char buf1000; pid_t p; if(pipe(fd)0) printf(创建管道失败); return -1; p=fork(); if(p0) perror(创建子进程失败); exit; else if (p=0) close(0); dup(fd0); execlp(grep,grep,.c,NULL);

3、 else close(1); dup(fd1); execlp(ls,ls,-l,NULL); wait(0); return 0; 结果截图: 2. (1)在命令行下执行 $touch file.txt $ls l file.txt, cat 命令查看 file.txt 内容。 (2)设计一个程序,要求利用 popen 函数,实现"ls l file.txt'的重定向功能,file.txt 在程序中创建。参考课件 ch4 59 程序源代码: #include stdio.h #includesignal.h #includeunistd.h #includestdlib.h int main () FILE *fp; int num; char buf500; memset(buf,0,sizeof(buf); printf(建立管道n); fp=popen(ls -l,r); if(fp!=NULL) num=fread(buf,sizeof(char),500,fp); if(num0) printf(%sn,buf); pclose(fp); else printf(用 popen 创建管道错误n); return 1; fp=fopen(a.txt,w+); fwrite(buf,si

温馨提示

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

评论

0/150

提交评论