vfork()系统调用
生活随笔
收集整理的這篇文章主要介紹了
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()系统调用的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 快捷配置Hibernate实现对数据库的
- 下一篇: OpenGLES 2.0 可编程渲染管线