Linux多任务编程(六)---编写多进程程序及其代码
来源:互联网 发布:云数据库 免费 编辑:程序博客网 时间:2024/04/30 00:39
实验目的
通过编写多进程程序,熟练掌握fork()、exec()、wait()和waitpid()等函数的使用,进一步理解在Linux中多进程编程的步骤。
实验内容
该实验有3个进程,其中一个为父进程,其余两个是该父进程创建的子进程,其中一个子进程运行“ls -l”指令,另一个子进程在暂停5s后异常退出。父进程先用阻塞方式等待第一个进程的结束,然后用非阻塞方式等待另一个子进程的退出,待收集到第2个子进程结束的消息后,父进程就返回。
实验步骤
该实验的流程图如下
实验源代码
先看一下下面的代码,这个程序能得到我们所希望的结果吗?它的运行会产生几个进程?
执行结果如下图
也有可能会出现下面的结果
分析执行结果可以指知道,这里其实是产生了3个子进程,在子进程2中又产生了一个子进程1。
下面咱们贴出正确的实验代码:
执行结果如下图
不论程序执行多少次,结果都是一样的。对比上一个结果,咱们就可以理解多进程该怎么创建了。一定要明确创建子进程的父进程是哪一个。
相关实验代码上传到网站,multi_proc_wrong.c点此下载,multi_proc.c点此下载
- Linux多任务编程(六)---编写多进程程序及其代码
- Linux多任务编程(六)---编写多进程程序及其代码
- Linux多任务编程 编写多进程程序及其代码
- Linux多任务编程(七)---Linux守护进程及其基础实验
- Linux多任务编程(七)---Linux守护进程及其基础实验
- 编写多进程程序 --多进程编程
- Linux多任务编程(一)---任务、进程、线程
- Linux多任务编程(一)---任务、进程、线程
- Linux多任务编程(一)---任务、进程、线程
- Linux多任务编程(一)---任务、进程、线程
- Linux的多任务编程-进程
- Linux的多任务编程-进程
- Linux的多任务编程-进程
- Linux下C语言开发(多任务编程之任务、进程、线程)
- 搞定linux上MySQL编程(六):C语言编写MySQL程序(结)
- 搞定linux上MySQL编程(六):C语言编写MySQL程序(结)
- 搞定linux上MySQL编程(六):C语言编写MySQL程序(结)
- Linux进程控制编程(六)
- mysql导入.sql大文件
- ADO 和ADO.NET数据访问功能的区别
- POJ3667Hotel(线段树)
- hdu 2955 Robberies
- Lab5 操作系统是如何工作的
- Linux多任务编程(六)---编写多进程程序及其代码
- hdu_1405 The Last Practice
- 迷宫问题 (上)栈 回溯法
- 普通成員函數的的重載形式
- Linux进程间通信(一)---进程间通信概述及其种类
- HDU1287 破译密码
- ok6410 u-boot-2012.04.01移植四增加MLC NAND支持
- 運算符的重載
- 转载:Socket 服务器端与客户端例子(异步模式)