vfork()系统调用
vfork()学习
vfork()与fork()的一个重要区别, 等待子进程退出后, 父进程才会执行.
1 #include <stdio.h> 2 #include <sys/types.h> 3 #include <unistd.h> 4 5 int globVar = 5; 6 7 int main(void) 8 { 9 pid_t pid; 10 int var = 1, i; 11 12 printf("fork is diffirent with vfrok \n"); 13 14 pid = vfork(); 15 16 switch(pid) { 17 case 0: 18 i = 3; 19 while(i-- > 0) 20 { 21 printf("Child process is running\n"); 22 23 globVar++; 24 var++; 25 26 sleep(1); 27 } 28 printf("Child's globVar = %d,var = %d, pid = %d\n",globVar,var,getpid()); 29 break; 30 case -1: 31 perror("Process creation failed\n"); 32 exit(0); 33 default: 34 i = 5; 35 while(i-- > 0) 36 { 37 printf("Parent process is running\n"); 38 39 globVar++; 40 var++; 41 42 sleep(1); 43 } 44 printf("Parent's globVar = %d ,var = %d, pid = %d\n", globVar ,var,getpid()); 45 exit(0); 46 } 47 }
编译/链接/运行结果如下:
父进程会等待子进程执行, 完成退出后, 父进程才会执行.
转载于:https://www.cnblogs.com/zhanglong71/p/5074500.html
vfork()系统调用相关推荐
- 【Linux 内核】进程管理 ( 进程相关系统调用源码分析 | fork() 源码 | vfork() 源码 | clone() 源码 | _do_fork() 源码 | do_fork() 源码 )
文章目录 一.fork 系统调用源码 二.vfork 系统调用源码 三.clone 系统调用源码 四._do_fork 函数源码 五.do_fork 函数源码 Linux 进程相关 " 系统 ...
- 【Linux 内核】进程管理 ( 系统调用简介 | 进程相关系统调用源码 )
文章目录 一.系统调用简介 二.进程相关系统调用源码 一.系统调用简介 在开发应用程序时 , 进行 " 进程创建 " , 调用的 fork() , vfork() , clone( ...
- OS / Linux / clone、fork、vfork 与 pthread_create 创建线程有何不同
进程是一个指令执行流及其执行环境,其执行环境是一个系统资源的集合,这些资源在Linux中被抽象成各种数据对象:进程控制块.虚存空间.文件系统,文件I/O.信号处理函数.所以创建一个进程的过程就是这些数 ...
- linux内核-系统调用execve()
读者在linux内核-系统调用fork.vfork与clone中已经看到,进程通常是按其父进程的原样复制出来的,在多数情况下,如果复制出来的子进程不能与父进程分道扬镳,走自己的路,那就没多大意义.所以 ...
- linux 进程 系统调用,linux进程与系统调用
进程管理 linux系统的实现非常特别:他对线程和进程并不特别区分.对linux而言,线程只不过是一种特殊的进程罢了. 现代操作系统中,进程提供两种虚拟机制:虚拟处理器和虚拟内存.虽然实际上可能是许多 ...
- fork()和vfork()
Hello,今天Val和大家分享操作系统中关于进程创建有关的内容. 一.进程创建背景知识 1.传统Unix操作系统统一对待所有进程: 子进程拷贝父进程所拥有的所有资源,这种方法创建慢且效率低,因为子进 ...
- Linux系统编程(vfork和fork)
文章目录 前言 一.vfork讲解 二.vfork使用 三.exit和_exit 1.exit和_exit对比 2.在vfork中的使用 四.vfork和fork区别 总结 前言 本篇文章讲解vfor ...
- Linux 创建子进程执行任务
Linux 操作系统紧紧依赖进程创建来满足用户的需求.例如,只要用户输入一条命令,shell 进程就创建一个新进程,新进程运行 shell 的另一个拷贝并执行用户输入的命令.Linux 系统中通过 f ...
- [转载]Linux 线程实现机制分析
自从多线程编程的概念出现在 Linux 中以来,Linux 多线应用的发展总是与两个问题脱不开干系:兼容性.效率.本文从线程模型入手,通过分析目前 Linux 平台上最流行的 LinuxThreads ...
最新文章
- 如何让Android对话框全屏 Dialog 全屏
- 从 25 倍稀释下的蘑菇街期权说起
- Spring MVC入门示例教程--静态页面跳转
- VS2008 SP1补丁
- Java并发包--线程池框架
- 真随机和伪随机区别_用骰子DIY真随机助记词 | 火星号精选
- 中国电子云发布专属云CECSTACK 以全栈信创赋能千行百业
- kalilinux安装qt_Kali Linux 安装和搜狗输入法的安装
- 全网首发Oreo易支付开源+教程
- 【设计模式】—— 备忘录模式Memento
- openwrt: Makefile 框架分析[转载]
- 【iOS 15】iPhone如何录屏?iPhone屏幕录制技巧分享
- 【行业应用】阿里云实时计算 Flink 版 IoT 行业解决方案
- python教程40-财务自动生成财务报表
- 崛起于Springboot2.X之集成规则引擎Drools(41)
- 关于手机的挑选的精品帖子
- js资源按需加载和预加载
- 基于MockingBird声音克隆
- unity热更- 2 游戏大版本更新和热更新
- IntelliJ IDEA2017.3 安装破解过程
热门文章
- C语言 | 内存对齐03 - 内存对齐的公式
- python用动态规划求删除路径_Python | 动态规划求解TSP
- BootStrap笔记-BootStrap的安装与使用
- Qt笔记-QxOrm基本使用(对SQLLite进行增删改查)
- Spring Boot笔记-get请求发送json数据(方便前端vue解析)
- 你经常使用计算机吗这样的问题其主要缺点是,2015年10月自考02326操作系统模拟试题及答案3...
- pc显示器分辨率 前端_2020电竞显示器推荐
- 天地图卫星地图_AutoCAD使用卫星地图
- wpf绑定treeview 带查找_如何查找,修复和避免C#.NET中内存泄漏的8个最佳实践
- 腾讯Light·公益创新挑战赛圆满收官,郎朗担任公益传播大使