fork1.vfork.c
来自「Solaris下进程编程源码,sun公司培训用例」· C语言 代码 · 共 67 行
C
67 行
#include <stdio.h>#include <stdlib.h>#include <unistd.h>#include <sys/wait.h>int gvar = 0;int main(int argc, char** argv){ int lvar = 0; pid_t child_pid; printf("Initial value: gvar = %d, lvar = %d\n", gvar, lvar); // Create the child process 1 using fork1() child_pid = fork1(); switch(child_pid) { case -1: // Error printf("Can't create child process 1\n"); exit(-1); case 0: // Child 1's code // Change the variables' value gvar = 1; lvar = 1; // Print the variables printf("Child process1: gvar = %d, lvar = %d\n", gvar, lvar); printf("Press enter to exit child process 1..."); getchar(); exit(0); default: break; } // Wait for child 1's termination wait(NULL); // Print the global variable and local variable printf("Parent process: gvar = %d, lvar = %d\n", gvar, lvar); // Create the child process 2 using vfork() child_pid = vfork(); switch(child_pid) { case -1: // Error printf("Can't create child process 2\n"); _exit(-1); break; case 0: // Child 2's code // Change the variables' value gvar = 2; lvar = 2; // Print the variables printf("Child process2: gvar = %d, lvar = %d\n", gvar, lvar); printf("Press enter to exit child process 2..."); getchar(); _exit(0); default: break; } // Print the variables again printf("Parent process: gvar = %d, lvar = %d\n", gvar, lvar); return 0;}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?