- 论坛徽章:
- 0
|
大家好,我是新手。请大家看代码:
#include<stdlib.h>
#include<unistd.h>
#include<stdio.h>
#include<sys/types.h>
int glob = 6; /* external variable in initialized data */
int
main(void)
{
int var; /* automatic variable on the stack */
pid_t pid;
var = 88;
printf("before vfork\n"); /* we don't flush stdio */
if ((pid = vfork()) < 0) {
printf("vfork error");
} else if (pid == 0) { /* child */
glob++; /* modify parent's variables */
var++;
exit(0); /* child terminates */
}
/*
* Parent continues here.
*/
printf("pid = %d, glob = %d, var = %d", getpid(), glob, var);
_exit(0);
}
执行结果:before vfork
pid = 15948, glob = 7, var = 89
请问:父进程的最后一个printf为什么能打印出来呢? |
|