




已阅读5页,还剩2页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
实验五 进程间通信实验 二 实验目的 实验目的 1 通过基础实验 基本掌握无名管道 有名管道的程序设计 2 通过编写程序 使读者掌握信号处理程序设计方法 实验内容 实验内容 1 无名管道程序设计 无名管道程序设计 在父进程中创建一个无名管道 并创建子进程 在父进程中写该 管道 并用子进程将内容读出 2 有名管道程序设计 有名管道程序设计 创建两个进程 在 A 进程中创建一个有名管道 并向其写入数据 通过 B 进程从有名管道中读出数据 3 信号处理程序设计 信号处理程序设计 在进程中为 SIGBUS 注册处理函数 并向该进程发送 SIGBUS 信 号来触发信号处理函数 实验过程 实验过程 一 无名管道程序设计 一 无名管道程序设计 实验代码 实验代码 pipe c include include include include include include define MAX DATA LEN 256 define DELAY TIME1 int main pid t pid int pipe fd 2 char buf MAX DATA LEN const char data Pipe Test Program int real read real write memset void buf 0 sizeof buf 创建管道创建管道 if pipe pipe fd 0 printf d bytes read from the pipe is s n real read buf 关闭子进程读描述符关闭子进程读描述符 close pipe fd 0 exit 0 else if pid 0 父进程关闭读描述符 并通过使父进程暂停父进程关闭读描述符 并通过使父进程暂停 1 秒等待子进程已关闭相应的写描秒等待子进程已关闭相应的写描 述符述符 close pipe fd 0 sleep DELAY TIME 父进程向管道中写入字符串父进程向管道中写入字符串 if real write write pipe fd 1 data strlen const char data 1 printf Parent wrote d bytes s n real write data 关闭父进程写描述符关闭父进程写描述符 close pipe fd 1 收集子进程退出信息收集子进程退出信息 waitpid pid NULL 0 exit 0 将该程序编译 运行 pipe 二 有名管道程序设计 二 有名管道程序设计 1 编写一个应用程序 包含两个程序 一个用于读管道 一个用于写管道 其中在读管道编写一个应用程序 包含两个程序 一个用于读管道 一个用于写管道 其中在读管道 的程序里创建管道 并且作为的程序里创建管道 并且作为 main 函数里的参数由用户输入要写入的内容 读管道的 函数里的参数由用户输入要写入的内容 读管道的 程序会读出用户写入到管道的内容 这两个程序采用的是阻塞式读写管道模式 程序会读出用户写入到管道的内容 这两个程序采用的是阻塞式读写管道模式 实验代码 实验代码 1 写管道的程序 写管道的程序 fifo write c include include include include include include include define MYFIFO tmp myfifo 有名管道文件名有名管道文件名 define MAX BUFFER SIZEPIPE BUF 定义在于定义在于 limits h 中中 int main int argc char argv 参数为即将写入的字符串参数为即将写入的字符串 int fd char buff MAX BUFFER SIZE int nwrite if argc 0 printf Write s to FIFO n buff close fd exit 0 2 读管道的程序读管道的程序 fifo read c include include include include include include include include define MYFIFO tmp myfifo define MAX BUFFER SIZEPIPE BUF 定义在于定义在于 limits h 中中 int main char buff MAX BUFFER SIZE int fd int nread 判断有名管道是否已存在 若尚未创建 则以相应的权限创建判断有名管道是否已存在 若尚未创建 则以相应的权限创建 if access MYFIFO F OK 1 if mkfifo MYFIFO 0666 0 printf Read s from FIFO n buff close fd exit 0 为了能够较好地观察运行结果 需要把这两个程序分别在两个终端里运行 首先启动 读管道程序 读管道进程在建立管道之后就开始循环地从管道里读出内容 如果没有数据 可读 则一直阻塞到写管道进程向管道写入数据 在启动了写管道程序后 读进程能够从 管道里读出用户的输入内容 fifo read 终端二 fifo write FIFO fifo write Test fifo write Program 三 信号处理程序设计 三 信号处理程序设计 实验要求 实验要求 编写一个应用程序 用编写一个应用程序 用 signal 注册信号处理函数 并用注册信号处理函数 并用 kill 发送相应信号发送相应信号 触发信号处理 触发信号处理 信号概念 信号是一种进程间的通信机制 它为应用程序提供一种异步的软件中断 使应用程序有机会接收其它程序或终端发送的命令 即信号 应用程序收到信号 后 有三种处理方式 忽略 默认和捕捉 进程收到一个信号后 会检查对该信号 的处理机制 如果是 SIG IGN 就忽略该信号 如果 SIG DFT 则采用系统默认 的处理动作 通常是终止进程或忽略该信号 如果为该信号指定了一个处理函数 捕捉 则会中断当前进程正在执行的任务 转而去执行该信号的处理函数 返 回后再继续执行被中断的任务 常用信号说明 通过 kill l 命令可以查看到 Linux 支持的信号列表 实验代码及步骤 实验代码及步骤 功能描述 功能描述 在进程中为在进程中为 SIGBUS 注册处理函数 并向该进程发送注册处理函数 并向该进程发送 SIGBUS 信号来触发信号来触发 信号处理函数 信号处理函数 sig bus c include include include 自定义的信号处理函数自定义的信号处理函数 void my func int sign no if sign no SIGBUS printf I have get SIGBUS n int main printf Waiting for signal SIGBUS n 注册信号处理函数注册信号处理函数 signal SIGBUS my func pause 将进程挂起 直到捕捉到信号为止将进程挂起 直到捕捉到信号为止 exit 0 1 对程序进行编辑和编译 对程序进行编辑和编译 2 在一个终端中运行 在一个终端中运行 sig bus 会看到进程挂起 等待信号 会看到进程挂起 等待信号 3 在另一个终端 查找到运行 在另一个终端 查找到运行 sig bus 的进程号 通过的进程号 通过 kill 命令发送命令发送 SIGB
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年美发工具车项目可行性研究报告
- 钻井装置行业直播电商战略研究报告
- 高效线路捣固、稳定车行业跨境出海战略研究报告
- 钨金属行业直播电商战略研究报告
- 2025年箱式保管箱项目可行性研究报告
- 2025年管路清洗系统项目可行性研究报告
- 2025年管形双端碘钨灯项目可行性研究报告
- 2025年种鸭项目可行性研究报告
- 2025年磺胺二甲嘧啶片项目可行性研究报告
- 2025年硬布轮项目可行性研究报告
- 湖北省武汉市2025届高中毕业生四月调研考试数学试卷及答案(武汉四调)
- 2025-2030中国实验动物行业市场深度调研及市场前瞻与投资战略研究报告
- 湖南湘潭高新集团有限公司招聘考试真题2024
- 2025春季学期国开电大本科《政府经济学》一平台在线形考(形考任务1至4)试题及答案
- 2025至2030年中国台式特定电磁波谱治疗器数据监测研究报告
- 正式恋爱协议书
- 2025年兰州粮油集团有限公司招聘笔试参考题库含答案解析
- GB 21258-2024燃煤发电机组单位产品能源消耗限额
- DB34∕T 4010-2021 水利工程外观质量评定规程
- 2024年湖南省长沙市中考地理试卷真题(含答案解析)
- 新生代员工的管理与激励(绝对经典)
评论
0/150
提交评论