int var1 = 0; int main() { int var2 = 0; pid_t pid = fork(); if (pid == 0) { var1++; var2++; printf("child: var1 = %d, var2 = %d\n", var1, var2); } return 0; }
时间: 2024-04-03 12:30:45 浏览: 163
int main(int argc,char argv[ ])
这段代码创建了一个子进程,并在子进程中对 var1 和 var2 进行了加一操作,然后输出了它们的值。在父进程中,没有对 var1 和 var2 进行任何操作,直接返回了 0。执行结果会输出 "child: var1 = 1, var2 = 1"。这是因为子进程会复制父进程的数据段和堆栈段,但是它们是独立的,所以子进程对变量的修改不会影响父进程。
阅读全文