
Linux系统编程——进程(三)fork函数和vfork函数的区别
发布日期:2021-05-07 23:27:13
浏览次数:23
分类:精选文章
本文共 1843 字,大约阅读时间需要 6 分钟。
1、vfork函数直接使用父进程的存储空间,不拷贝
2、vfork保证子进程先运行,当子进程调用exit退出后,父进程才执行用fork函数创建进程
#include#include #include #include int main(){ int data = 3; pid_t pid; pid = fork(); if(pid > 0){ while(1){ printf("Father pid = %d\n",getpid()); sleep(1); } }else if(pid == 0){ while(1){ data--; //将child打印3次 printf("Child pid = %d\n",getpid()); sleep(3); if(data == 0){ exit(0); } } } return 0;}
当用vfork函数创建函数时
#include#include #include #include int main(){ int data = 3; pid_t pid; pid = vfork(); if(pid > 0){ while(1){ printf("Father pid = %d\n",getpid()); sleep(1); } }else if(pid == 0){ while(1){ data--; //将child打印3次 printf("Child pid = %d\n",getpid()); sleep(3); if(data == 0){ exit(0); } } } return 0;}
再看下面代码
#include#include #include #include int main(){ pid_t pid; int data = 100; int i = 5; pid = vfork(); if(pid > 0){ while(i != 0){ printf("this is father pid : %d\n",getpid()); printf("father data = %d\n",data); i--; } } else if(pid == 0){ printf("this is child pid : %d\n",getpid()); data++; printf("child data = %d\n",data); exit(0); } return 0;}
下面是用fork创建的子进程
pid = vfork();
发表评论
最新留言
关注你微信了!
[***.104.42.241]2025年03月21日 06时03分19秒
关于作者

喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
MongoDB 快速扫盲贴
2021-05-08
修复搜狗、360等浏览器不识别SameSite=None 引起的单点登录故障
2021-05-08
EXTJS4.2——10.Tab+Iframe
2021-05-08
WEB基础——AJAX
2021-05-08
one + two = 3
2021-05-08
sctf_2019_easy_heap
2021-05-09
PyQt5之音乐播放器
2021-05-09
Redis进阶实践之十八 使用管道模式提高Redis查询的速度
2021-05-09
SQL注入
2021-05-09
#2036:改革春风吹满地
2021-05-09
MPI Maelstrom POJ - 1502 ⭐⭐ 【Dijkstra裸题】
2021-05-09
P1379 八数码难题 ( A* 算法 与 IDA_star 算法)
2021-05-09
算法学习笔记: 珂朵莉树
2021-05-09
Codeforces Round #664 题解(A ~ C)
2021-05-09
Problem A - Sequence with Digits (数学推导)
2021-05-09
Problem 330A - Cakeminator (思维)
2021-05-09
LeetCode75 颜色分类 (三路快排C++实现与应用)
2021-05-09
docker基础:容器生命周期管理命令
2021-05-09