Linux多任务编程之六:编写多进程程序及其代码(转)
2024-10-20 21:04:51
来源:CSDN 作者:王文松 转自Linux公社
--------------------------------------------------------------------------------------------------
实验目的
通过编写多进程程序,熟练掌握fork()、exec()、wait()和waitpid()等函数的使用,进一步理解在Linux中多进程编程的步骤。
实验内容
该实验有3个进程,其中一个为父进程,其余两个是该父进程创建的子进程,其中一个子进程运行“ls -l”指令,另一个子进程在暂停5s后异常退出。父进程先用阻塞方式等待第一个进程的结束,然后用非阻塞方式等待另一个子进程的退出,待收集到第2个子进 程结束的消息后,父进程就返回。
实验步骤
该实验的流程图如下
实验源代码
先看一下下面的代码,这个程序能得到我们所希望的结果吗?它的运行会产生几个进程?
执行结果如下图
也有可能会出现下面的结果
分析执行结果可以指知道,这里其实是产生了3个子进程,在子进程2中又产生了一个子进程1。
下面咱们贴出正确的实验代码:
执行结果如下图
不论程序执行多少次,结果都是一样的。对比上一个结果,咱们就可以理解多进程该怎么创建了。一定要明确创建子进程的父进程是哪一个。
相关实验代码上传到网站,multi_proc_wrong.c下载,multi_proc.c下载
免费下载地址在 http://linux.linuxidc.com/
用户名与密码都是www.linuxidc.com
具体下载目录在 /2013年资料/6月/12日/Linux多任务编程
最新文章
- SQL Server 关于列的权限控制
- Oracle字符分隔函数(split)
- OpenCv椭圆皮肤模型
- 用SQL语句操作数据
- linux系统tomcat启动正常访问不到主页面
- 圆形imageview
- hadoop 异常及处理总结-01(小马哥-原创)
- Nginx、LVS及HAProxy负载均衡软件的优缺点详解
- (转载)更好的重启nginx 服务器
- Spoj1771-Yet Another N-Queen Problem(精确覆盖)
- BZOJ 1042: [HAOI2008]硬币购物( 背包dp + 容斥原理 )
- CentOS 7安装Teamviewer 12
- mysql查看sql语句执行时间
- 菲律宾Globe/TM卡最省钱的上网方案
- sqlyog一些快捷键
- 使用Word批量删除换行和空白行
- [Sdoi2017]序列计数 矩阵优化dp
- leecode第四题(寻找两个有序数组的中位数)
- 组队项目——黄金点(叶雨&;王浩)
- wazhu之agent manage
热门文章
- 【asp.net core 系列】8 实战之 利用 EF Core 完成数据操作层的实现
- x memory pool c语言 内存池
- 离职冷静期文件.doc
- Laravel中Homestead添加多站点时遇到问题
- The following packages will be SUPERCEDED by a higher-priority channel是什么意思?
- matplotlib 强化学习
- ASP.NET WebAPI框架解析第一篇
- 008.OpenShift Metric应用
- vscode启动vue项目出错,给了管理员权限没用
- Git执行";git rebase -i HEAD~xxx";报错:git rebase fatal: Needed a single revision invalid upstream –i