zoukankan      html  css  js  c++  java
  • Linux多任务编程之六:编写多进程程序及其代码(转)

    来源: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多任务编程

  • 相关阅读:
    ubuntu下/etc/rc.local和/etc/init.d/rc.local的区别
    Shell 中的中括号用法总结
    基于C语言sprintf函数的深入理解
    linux下查看十六进制文件方法
    oracle load data infile
    linux bash中too many arguments问题的解决方法
    关于促进问题解决
    SYSTEM表空间过大问题
    01 Oracle分区索引
    oracle 11gR2 ASM添加和删除磁盘 转
  • 原文地址:https://www.cnblogs.com/hztd/p/4128945.html
Copyright © 2011-2022 走看看