- 此问题在此处已有答案**:
Why does my compiler not accept fork(), despite my inclusion of <unistd.h>?(4个答案)
3天前关闭。
此程序在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;
}
2条答案
按热度按时间8cdiaqws1#
您使用
system("pause")
的事实(顺便说一句,当您可以简单地使用getchar()
时,这是一个坏主意)使我相信您运行在Windows上,除非您使用CygWin这样的模拟层,否则fork
在该平台上不可用。老实说,我甚至不知道你是如何设法编译的,因为Windows通常也没有
unistd.h
,除非你安装了SFU或MinGW(尽管有unistd.h
来简化编译代码的任务(较少的条件编译),但它并没有提供比Windows更多的功能)。wswtfjt72#
fork
在Windows上不存在(除非您正在使用Cygwin)。请改用CreateProcess
。