欢迎访问 生活随笔!

生活随笔

当前位置: 首页 > 运维知识 > windows >内容正文

windows

vfork()系统调用

发布时间:2025/3/15 windows 41 豆豆
生活随笔 收集整理的这篇文章主要介绍了 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()系统调用的全部内容,希望文章能够帮你解决所遇到的问题。

如果觉得生活随笔网站内容还不错,欢迎将生活随笔推荐给好友。