我收到错误“未定义引用'fork'”

时间:2012-10-27 10:04:15

标签: c fork

  

可能重复:
  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;  
}

2 个答案:

答案 0 :(得分:6)

你正在使用system("pause")这个事实(顺便说一句,当你只能使用getchar()时)这个想法让我相信你在Windows上运行。除非您使用像CygWin这样的仿真层,否则该平台上不提供fork

说实话,我不确定你是怎么设法编译的,因为Windows通常没有unistd.h,除非你安装了SFU或MinGW(尽管有unistd.h简化编译代码的任务(减少条件编译),不提供比Windows更多的功能。

答案 1 :(得分:2)

Windows上不存在

fork(除非您使用Cygwin)。请改用CreateProcess