多进程程序设计

一、函数学习

1.1 创建进程fork

1.1.1 函数原形

  pid_t fork(void);

1.1.2 函数功能

  创建一个子进程

1.1.3 所属头文件

  <unistd.h>

1.1.4 返回值

  成功:父进程返回创建成功的子进程pid子进程返回 0

  失败:父进程返回

1.1.5 参数说明

  无

1.2 创建进程vfork

1.2.1 函数原形

  Pid_t  vfork();

1.2.2 函数功能

  创建一个子进程,并阻塞父进程

1.2.3 所属头文件

  <sys/types.h>   <unistd.h>

1.2.4 返回值

  成功:父进程返回创建成功的子进程pid子进程返回 0

  失败:父进程返回 -1

1.2.5 参数说明

  无

fork和vfork对比:

  fork和vfork都可以用于创建子进程,但是也有如下不同之处:

  1. fork:子进程拥有独立的数据段,堆栈。vfork:子进程与父进程共享数据段,堆栈。

  2. fork:父、子进程的执行次序不确定vfork:子进程先运行,父进程后运行

1.3 进程等待wait

1.3.1 函数原形

  pid_t wait(int* status);

1.3.2 函数功能

  挂起调用它的进程,直到其子进程结束

1.3.3 所属头文件

  <sys/types.h>    <sys/wait.h>

1.3.4 返回值

  成功:返回终止的那个子进程id

  失败: -1

1.3.5 参数说明

  status:记录子进程退出状态

1.4 执行程序函数名execl

1.4.1 函数原形

  int execl(const char* pathname,const char*arg,…)

1.4.2 函数功能

  运行一个可执行文件

1.4.3 所属头文件

  <unsitd.h>

1.4.4 返回值

  成功:不返回

  失败:返回

1.4.5 参数说明

  Pathname:要运行的可执行文件路径

  arg:可执行文件运行需要的参数

1.5终止进程exit等同于_Exit

1.5.1 函数原形

  void _exit(int status)

1.5.2 函数功能

  终止正在调用的进程

1.5.3所属头文件

  <unistd.h>

1.5.4 返回值

  无

1.5.5 参数说明

  status被用作进城退出状态返回给父进程

  父进程退出:可以是return 0和exit退出

  子进程退出:只能是exit

多进程程序设计,王明学learn的更多相关文章

  1. linux驱动程序设计的硬件基础,王明学learn

    linux驱动程序设计的硬件基础(一) 本章讲总结学习linux设备程序设计的硬件基础. 一.处理器 1.1通用处理器 通用处理器(GPP)并不针对特定的应用领域进行体系结构和指令集的优化,它们具有一 ...

  2. 库函数系统调用文件方式,王明学learn

    库函数系统调用文件方式 基于C函数库的文件编程是独立于具体的操作系统平台的,不管是在Windows.Linux还是其他的操作系统中,都是使用这些函数.使用库函数进行程序设计可提高程序的可移植性. 对于 ...

  3. 静态/动态函数库设计,王明学learn

    静态/动态函数库设计 Linux应用程序设计中需要的外部函数主要由函数库和系统调用来提供. 两者区别: 一.函数库分类 函数库按照链接方式可分为: 1.静态链接库 对函数库的链接是放在编译时期(com ...

  4. ARM伪指令,王明学learn

    ARM伪指令 在ARM汇编语言程序中里,有一些特殊指令助记符与指令系统的助记符不同,没有相对应的操作码,通常称这些特殊指令助记符为伪指令,他们所完成的操作称为伪操作.伪指令在元程序中的作用是为完成汇编 ...

  5. ARM指令学习,王明学learn

    ARM指令学习 一.算数和逻辑指令 1— MOV 数据传送指令    2.— MVN 数据取反传送指令    3.— CMP 比较指令    4.— CMN 反值比较指令    5.— TST 位测试 ...

  6. ARM寄存器学习,王明学learn

    ARM寄存器学习 ARM微处理器共有37个32位寄存器,其中31个为通用寄存器,6个为状态寄存器.但是这些寄存器不能被同时访问,具体哪些寄存器是可以访问的,取决ARM处理器的工作状态及具体的运行模式. ...

  7. 消息队列通信,王明学learn

    消息队列通信 消息队列就是一个消息(一个结构)的链表.而一条消息则可看作一个记录,具有特定的格式.进程可以从中按照一定的规则添加新消息:另一些进程则可以从消息队列中读走消息. 每一个消息都是一个结构体 ...

  8. 共享内存同行,王明学learn

    共享内存同行 一.共享内存概念 共享内存是IPC机制中的一种,它允许两个不相关的进程访问同一段内存, 这是传递数据的一种非常有效的方式. 二.函数学习 这里主要有创建共享内存.映射共享内存.分离共享内 ...

  9. 信号量进程同步,王明学learn

    信号量进程同步 一组并发进程进行互相合作.互相等待,使得各进程按一定的顺序执行的过程称为进程间的同步. 信号量在进程同步时初始值为:0 信号量在进程互斥时初始值为:大于0的 本章节主要使用信号量,使的 ...

随机推荐

  1. python virtualenv环境运行django

    python virtualenv环境运行django 安装前准备 检查pip版本与python版本是否一致 [root@localhost bin]# whereis pip pip: /usr/b ...

  2. 使用Java数组实现双色球选号

    package com.hm.test; import java.util.Random; /** * 模拟双色球生成 * *1.从1到16中产生一个篮球的随机数 *2.从1到33中产生出6个红色的球 ...

  3. Java RuntimeException异常处理汇总

    Java中所有异常的父类是Throwable类,在Throwable类下有两大子类: 一个是Error类,指系统错误异常,例如:VirtualMachineError 虚拟机错误,ThreadDeat ...

  4. Delphi中Format与FormatDateTime函数详解

    copy:http://hi.baidu.com/yunfanleo/blog/item/0c51d9cdbc0531550eb34558.html Format是一个很常用,却又似乎很烦的方法,本人 ...

  5. MyEclipse8.5可用注册码(到2018年)

    转载自:http://blog.csdn.net/z123252520/article/details/45873159 Subscriber:zy Subscriber Code:mLR8ZC-85 ...

  6. C# 总复习

    1.循环语句 四要素:初始条件.循环条件.循环体.状态改变 循环的最后一句:循环条件不再满足 2. ++     --int a = 5; //在赋值语句中,后++需要,先进性赋值,然后进行+1运算 ...

  7. 使用json格式输出

    /** * json输出 * * @param unknown_type $info */ public function json_out ($info) { header('Content-typ ...

  8. CodeSign error: code signing is required for product type Application in SDK iOS

    在真机测试的时候往往会突然出现这样一个错误,code signing is required for product type 'Application' in SDK 'iOS 7.0'  ,就是说 ...

  9. asp.net 曲线图

    public void draw(DataTable dt) { //取得记录数量 int count = dt.Rows.Count; //记算图表宽度 int wd = 80 + 20 * (co ...

  10. osgearth 配置mapNode TerrainOptions

    设置瓦片PagedLOD节点最小可视距离因子,默认是6.0 minTileRangeFactor() Map *map = new Map();WWOptions wwImgGlobe;map-> ...