📄 fork1.vfork.c
字号:
#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 + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -