今天试了一下fork()和vfork().结果有一点不解.具体问题如下:
创建了一个.c文件,内容如下:
#include <unistd.h>
#include <stdio.h>
int main(void)
{
pid_t pid;
int count = 0;
pid = fork();
count++;
printf("count=%d\n",count);
return 0;
}
打印出的结果为:
count=1
count=1
这个结果能够理解,问题就出现在下面的实验.我将当前.c文件中的fork改为vfork之后编译执行后输出的结果为:
count=1
count=2
count=1
.
.
.
count=1
count=2
count=1
打印出了很多count=1和count=2
这个是为什么额,为什么不是打印出一次count=1和count=2