vfork()函数详解

简介: vfork()函数详解

vfork

vfork的特点 — 创建子进程:

①子进程必定先运行,等到子进程调用exit或者exec后,父进程才能运行

②父子进程共享空间(共享内存数据)

fork 是 创建一个子进程,并把父进程的内存数据copy到子进程中。父子进程谁先运行是随机的。


代码:

#include <stdio.h>
#include <stdlib.h>
#include <sys/types.h>
#include <unistd.h>
#include <errno.h>

int main()
{
    int data=1;

    int pid = vfork();

    if(pid == -1)
    {
        perror("vfork");
    }
    else if(pid == 0)
    {
        data++;
        printf("子进程,data:%d\n",data);
        exit(0);
    }
    else
    {   
        printf("父进程,data:%d\n",data);
    }

    return 0;
}


代码实现效果:

相关文章
|
2月前
|
存储 算法 Unix
【创建进程】fork函数与写时拷贝
【创建进程】fork函数与写时拷贝
|
2月前
|
安全 Java 程序员
“系统调用”究竟是不是个函数?
- **系统调用**和普通**函数**有何区别? - 什么是**内核态** 和 **用户态**? - 操作系统如何让CPU切换状态? - 内中断、外中断、软中断、硬中断是什么意思? - 库函数和系统调
|
2月前
|
算法 Unix Linux
Linux系统编程(vfork和fork)
Linux系统编程(vfork和fork)
48 0
|
8月前
|
程序员 Linux Shell
【CSAPP】进程控制 | 系统调用错误处理 | 进程状态 | 终止进程 | 进程创建 | 回收子进程 | 与子进程同步(wait/waitpid) | execve 接口
【CSAPP】进程控制 | 系统调用错误处理 | 进程状态 | 终止进程 | 进程创建 | 回收子进程 | 与子进程同步(wait/waitpid) | execve 接口
67 0
|
Linux
wait() 函数和 waitpid() 函数
wait() 函数和 waitpid() 函数
629 0
wait() 函数和 waitpid() 函数
|
算法 物联网 Linux
Vfork|学习笔记
快速学习 Vfork
77 0
Vfork|学习笔记
|
物联网 Linux 开发者
Waitpid 函数|学习笔记
快速学习 Waitpid 函数,“Waitpid 函数”,也是“等”。虽然功能和 “Wait” 相同,但是 “Waitpid” 实现的功能比 “Wait” 实现的功能更多。
131 0
Waitpid 函数|学习笔记
|
算法 物联网 Linux
创建进程 fork 函数|学习笔记
快速学习创建进程 fork 函数
154 0
创建进程 fork 函数|学习笔记
|
Linux 调度
vfork() 函数
vfork() 函数
55 0