fork 与 vfork
来源:互联网 发布:手机监测软件流量 编辑:程序博客网 时间:2024/05/22 02:17
1、函数原型
#include <unistd.h>
pid_t fork(void);
pid_t vfork(void);
2、用法介绍
fork()把当前进程克隆一份,克隆后的新旧进程只有进程id不同。新进程称为旧进程的子进程。两份进程都从克隆完成的那个地方继续运行!两份进程独立运行,谁先谁后没有规定。fork克隆是全部克隆,包括所有的函数、变量、缓冲区、打开的文件等整个进程空间中的一切。其中子进程return返回的是0,父进程return返回的是子进程的id(一定不是0),失败返回-1。
vfork跟fork类似,但存在如下的差别
1. fork():子进程拷贝父进程的数据段,代码段。vfork():子进程与父进程共享数据段.
2. fork():父子进程的执行次序不确定.
vfork():保证子进程先运行,在调用exec或exit之前与父进程数据是共享的,在它调用exec
或exit之后父进程才可能被调度运行。
3. vfork()保证子进程先运行,在她调用exec或exit之后父进程才可能被调度运行。如果在
调用这两个函数之前子进程依赖于父进程的进一步动作,则会导致死锁。
4. 当需要改变共享数据段中变量的值,则拷贝父进程。
- fork与vfork
- fork与vfork
- fork() 与 vfork()比较
- fork与vfork 函数
- vfork()与fork()区别
- fork与vfork
- vfork与fork区别
- fork与vfork
- fork 与 vfork
- fork与vfork
- fork()与vfork()
- fork与vfork
- vfork与fork
- fork 与vfork
- fork 与 vfork区别
- APUE--fork与vfork
- fork与vfork
- fork与vfork浅析
- 将数据库存储在SD卡中的方法
- C++读书笔记之 单目运算符重载 取负符号 - 重载
- 初识Mongodb之[CURD]-PHP版
- Javascript根据选中的数据颜色,全文档搜索选中的数据节点(可条件选择单个或多个)
- Hdu 1532 Drainage Ditches【网络流】
- fork 与 vfork
- 几种解决互联网应用程序开发的好方法
- Android 开机欢迎界面
- Java中hashcode的理解
- 读书笔记--数学之美1
- POLL/EPOLL的实现剖析
- 线程
- spring 事物
- 给UITableViewCell动态调整高度