oracle多进程编程,编写多进程程序及其代码

实验目的

通过编写多进程程序,熟练掌握fork()、exec()、wait()和waitpid()等函数的使用,进一步理解在Linux中多进程编程的步骤。

实验内容

该实验有3个进程,其中一个为父进程,其余两个是该父进程创建的子进程,其中一个子进程运行“ls -l”指令,另一个子进程在暂停5s后异常退出。父进程先用阻塞方式等待第一个进程的结束,然后用非阻塞方式等待另一个子进程的退出,待收集到第2个子进程结束的消息后,父进程就返回。

实验步骤

该实验的流程图如下

02bdf22de3317a87cbd5c02f224a394a.png

实验源代码

先看一下下面的代码,这个程序能得到我们所希望的结果吗?它的运行会产生几个进程?

b66172b59a4cb699fea18377a5ef091b.png

810b8c74016abc6c037a155a1cb18962.png

c4f5a6e71bda1aa1c110309193972469.png

执行结果如下图

3004737b6c4f6748902cc29d1931e4f2.png

也有可能会出现下面的结果

f52ed477dfa8dbf4cfdf2b7f4330eb9d.png

分析执行结果可以指知道,这里其实是产生了3个子进程,在子进程2中又产生了一个子进程1。

下面咱们贴出正确的实验代码:

d792628f4be1bb46efbf6abdbcddcbef.png

3b0eca58083f5bbfb485e347493a9421.png

eec58f3419bc8e98af2b69c5f283bc31.png

执行结果如下图

e3fb24a392de9fe3a5cc8b171d4d0962.png

不论程序执行多少次,结果都是一样的。对比上一个结果,咱们就可以理解多进程该怎么创建了。一定要明确创建子进程的父进程是哪一个。

相关实验代码上传到网站,multi_proc_wrong.c下载,multi_proc.c下载

具体下载目录在 /2013年资料/6月/12日/Linux多任务编程0b1331709591d260c1c78e86d0c51c18.png

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值