问:有关进程问题?
#include <stdio.h>#include <sys/types.h>
#include <unistd.h>
int main(void)
{
pid_t pid;
int num = 0;
pid = vfork(); // pid = fork();
num++;
printf("num = %d\n", num);
return 0;
}
输出结果是:
num = 1;
num = 1;
段错误 注:为什么会出现“段错误”,当用pid = fork();不会出现。
应该是因为vfork 和父进程公用数据区和堆栈造成的,同时执行同一操作,就会段错误。我试了,没有段错误,但是执行也是不对的
页:
[1]