一、实验目的
1、了解什么是管道
2、熟悉UNIX/LINUX支持的管道通信方式

二、实验内容:
编写程序实现进程的管道通信。用系统调用pipe( )建立一管道,二个子进程P1和P2分别向管道各写一句话:
Child 1 is sending a message!
Child 2 is sending a message!
父进程从管道中读出二个来自子进程的信息并显示。

三、实验环境

Linux操作系统

四、实验过程与运行结果
源代码:
#include<unistd.h>
#include<signal.h>
#include<stdio.h>
#include<stdlib.h>
int pid1,pid2;
int main()
{
int fd[2];
char outpipe[100],inpipe[100];
pipe(fd);/create a pipe/
while((pid1=fork())-1);
if(pid10)
{
lockf(fd[1],1,0);
sprintf(outpipe,“child 1 process is sending message!”);
write(fd[1],outpipe,50);
sleep(5);
lockf(fd[1],0,0);
exit(0);
}
else
{
while((pid2=fork())-1);
if(pid20)
{
lockf(fd[1],1,0);
sprintf(outpipe,“child 2 process is sending message!”);
write(fd[1],outpipe,50);
sleep(5);
lockf(fd[1],0,0);
exit(0);
}
else
{
wait(0);
read(fd[0],inpipe,50);
printf("%s\n",inpipe);
wait(0);
read(fd[0],inpipe,50);
printf("%s\n",inpipe);
exit(0);
}
}
}

结果图:

Linux操作系统实验系列之实验四管道通信相关推荐

  1. Linux操作系统学习笔记(十四)块设备

    一. 前言   上文我们分析了字符设备,本文接着分析块设备.我们首先分析块设备的基本结构体,然后分析块设备生成.加载的整个过程,最后分析块设备的直接I/O访问和缓存I/O访问. 二. 块设备基本结构体 ...

  2. 数据可视化第3篇:安装linux操作系统5系列

    上一篇我们讲解了,在虚拟机软件中新创建一个虚拟机.这一篇我们继续,在新创建的虚拟机中,安装linux操作系统.同样是图文并茂的方式,很好理解上手. (1)编辑安装好的虚拟机(引入ISO) (2)找到本 ...

  3. 以太坊系列---ipc实现方式---管道通信库npipe

    背景 以太坊rpc有4种实现方式分别是inproc,ipc,http,ws.inproc是进程内部调用,为console使用:http是以http接口方式提供访问:ws是以websocket的方式提供 ...

  4. linux处理机调度实验报告,模拟Linux操作系统下处理机调度实验报告

    在采用多道系统的设计程序中,往往有若干进程同时处于就绪状态.当就绪状态进程数大于处理机数时,就必须按照某种策略来决定哪些进程优先占用处理机.本实验模拟在单处理机情况下处理机调度 处理机调度 一.实验目 ...

  5. 【Linux操作系统】【综合实验二 vi应用与shell脚本编辑】【浅试编辑命令】

    文章目录 一.实验目的 二.实验要求 三.实验内容 ⭐(1)继续练习Linux系统的文件类.目录类.进程管理类与磁盘操作类常用命令,并使用常见的选择项: ⭐(2)了解ed.ex行编辑器与Emacs全屏 ...

  6. 中南大学胡小龙老师Linux操作系统与应用课程实验报告

    网盘链接:https://pan.baidu.com/s/18hZmTa0XMm_v7b3WFOb_sQ (若链接失效,可发邮件到ydduong@163.com)

  7. Windows 8 动手实验系列教程 实验6:设置和首选项

    动手实验 实验6:设置和首选项 2012年9月 简介 实验3介绍了合约并演示了应用程序如何轻松地与共享和搜索合约实现集成.合约同样包含设置超级按钮,它对活动的Windows应用商店应用的设置进行修改. ...

  8. linux如何自动调jiaob,最牛B的 Linux Shell 命令 系列连载(四)

    本文编译自commandlinefu.com的系列文章Top Ten One-Liners from CommandLineFu Explained.作为一个由用户推荐最有用shell命令的网站,其记 ...

  9. Windows 8 动手实验系列教程 实验8:Windows应用商店API

    动手实验 实验 8: Windows应用商店API 2012年9月 简介 编写Windows应用商店应用最令人瞩目的理由之一是您可以方便地将它们发布到Windows应用商店.考虑到世界范围内目前有超过 ...

最新文章

  1. 对于sync.Mutex使用注意事项
  2. 九、调度算法的评价指标
  3. 16进制转char_常州市赛题解:小X转进制
  4. 数据中心行业在能源转型中将发挥重要作用
  5. elxel表格纸张尺寸_一本书的诞生:纸张知识
  6. 【性能测试】Linux系统监控-CPU信息
  7. sqlmap第一次打靶成功
  8. es6 Object.getPrototypeOf()方法
  9. 腾讯广告北京招聘专场,offer等你解锁
  10. [C/C++][经典探讨]类继承中,通过基类指针delete释放,是否会造成内存泄漏
  11. protues软件仿真-LCD1602
  12. Linux安装docker-ce教程 centos依赖包安装
  13. ZZULIOJ部分题目解答
  14. STM32CubeMX驱动4脚OLED模块
  15. JS打开新的页面(当前页面打开、新的页面打开)
  16. 初探前端微服务——single-spa
  17. 拿到FaceBook注册用户的手机号有多简单?看这篇文章就够了。
  18. el-radio-button 设置默认选中问题
  19. 戴维斯双击策略的实现与验证
  20. STM32三菱FX1N,FX2N,FX3U,PLC方案 可以直接上传下载梯形图,在线监控,具有称重功能,数码管功能,可以做到10路模拟量

热门文章

  1. LayaBox---TypeScript---举例
  2. Android 文本,软键盘使用指南
  3. php 防止爬虫,服务器反爬虫攻略:Apache/Nginx/PHP禁止某些User Agent抓取网站
  4. 年会回顾|因智而生 聚领新进,深眸科技扬帆起航,凝心聚力谱新篇
  5. 药店药品的进销存管理系统
  6. Docker学习笔记(一):基本概念、Docker安装、阿里云加速、镜像命令、容器命令、其他常用命令
  7. switchcase:根据用指定月份,打印该月份所属的季节。3,4,5春季。6,7,8夏季。9,10,11秋季。12,1,2冬季。
  8. Kotlin实现RxBus3
  9. Python常用模块——随机函数(random)
  10. 键入网址再按下回车,后面究竟发生了什么?