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 ...
最新文章
- 无需额外数据,首次实现ImageNet 87.1% 精度,颜水成团队开源VOLO
- PPT|工业互联网关键技术专利态势
- Java Cardioid 心脏形曲线 (整理)
- Win64 驱动内核编程-34.对抗与枚举MiniFilter
- Java操作MongoDB代码示例
- iOS __block 与 __weak
- matlab 的cat函数
- ubuntu shell简介
- zabbix的rc控制脚本
- BiSeNet V2论文及源码
- 关于PHPExcel 导出下载表格,调试器响应乱码
- elasticsearch 删除满足条件的语句_ElasticSearch的基本概念和集群分布式底层实现
- Netty工作笔记0031---NIO零拷贝应用案例
- 免杀的艺术:史上最全的汇编Shellcode的技巧(三)
- Mysql优化(出自官方文档) - 第六篇
- leetcode——给定一个字符串,求不重复字符的最长子字符串的长度
- 智慧城市顶层设计的“二十八”个问题模型(SCLM)
- Android实现滑动的几种方式
- Android S 新特性:应用行为更改
- 全面认识包图,组件图,部署图
热门文章
- python爬虫利器p_Python爬虫利器五之Selenium的用法
- usb管控软件_数据防泄密软件介绍
- Linux笔记-Linux中的TracerPid
- C++笔记-使用std::funcional代替函数指针
- Qt文档阅读笔记-QSslConfiguration官方解析与实例
- C++设计模式-观察者模式
- Java工作笔记-String转Integer可以转与不可以转的情况
- C/C++ OpenCV均值滤波
- JAVA做一个五星评论打分字体,java中的Font
- java生成验证码SWT_Java SWT Lable框中显示图片验证码