可能重复:
Why does my compiler not accept fork(), despite my inclusion of <unistd.h>?
可能重复:Why does my compiler not accept fork despite my inclusion of unistd.h
这个程序不能用于gcc ......并且给出了一个链接器错误。未定义的对fork的引用...
#include<stdio.h>
#include<stdlib.h>
#include<unistd.h>
int main()
{
int a=10;
if (a==10 && fork())
printf("hello");
else
printf("world");
system("pause");
return 0;
}
答案 0 :(得分:6)
你正在使用system("pause")
这个事实(顺便说一句,当你只能使用getchar()
时)这个想法让我相信你在Windows上运行。除非您使用像CygWin这样的仿真层,否则该平台上不提供fork
。
说实话,我不确定你是怎么设法编译的,因为Windows通常没有unistd.h
,除非你安装了SFU或MinGW(尽管有unistd.h
简化编译代码的任务(减少条件编译),不提供比Windows更多的功能。
答案 1 :(得分:2)
fork
(除非您使用Cygwin)。请改用CreateProcess
。