我对fork()系统调用有这些愚蠢的疑虑,如果有人请回答这些问题,请感激不尽 .
fork() 系统调用是否返回整数?如果是,那么为什么呢
执行 fork() 系统调用,我们在 pid_t 中取值?
我们不能只写 int x=fork() ;
例如─
#include
#include
#include
int main()
{
pid_t pid;
pid=fork();
if(pid==0)
{
printf("Child Process");
}
else if(pid>0)
{
printf("Parent Process");
}
else
{
printf("Unable to create");
}
}
为什么我们执行pid = fork()而不是int x = fork()?
上面的程序给出了一个输出 - 父ProcessChild过程为什么它首先执行父进程而不是子进程?
我试过这段代码 -
#include
int main()
{
int x;
x=fork();
if(x==0)
{
printf("Child Process");
}
else if(x>0)
{
printf("Parent Process");
}
else
{
printf("Unable to create");
}
}
我试图在ubuntu 15.04的gcc编译器中的整数变量中收集fork()的值,并且它工作正常,没有显示任何错误,并给出与上述程序相同的结果 .
这是编译器问题还是这段代码没问题?即使我没有给头文件fies sys / types.h和unistd.h,仍然没有显示任何错误 .
有人可以回答我的问题吗?