|
初学linux
一段简单的代码,在linux下c程序
#include <sys/types.h>
int glob=6;
int
main(void)
{
int var;
pid_t pid;
var=88;
printf("before vfork\n");
if( (pid=vfork())<0)
{
printf("vfork error\n");
exit(1);
}
else if(pid ==0){
glob++;
var++;
exit(0);
}
printf("pid =% d,glob= %d var =%d\n",getpid(),glob,var);
exit(0);
}
此时结果正常
befork vfork
pid=2443,glob=7,var=89
如果把红色大字的exit(0)改成return 0的话
结果var是个不确定的值
before vfork
pid=2443,glob=7,var=1107472635
请问一下,为什么?这两个函数原来上有什么区别呢?
谢了 |
|