C “我犯了错误”;未定义对'的引用;叉子'&引用;

C “我犯了错误”;未定义对'的引用;叉子'&引用;,c,fork,C,Fork,可能重复: 可能的副本: 此程序在gcc上不工作……并出现链接器错误..即。对fork的未定义引用 #include<stdio.h> #include<stdlib.h> #include<unistd.h> int main() { int a=10; if (a==10 && fork()) printf("hello"); else pr

可能重复:

可能的副本:

此程序在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;  
}
#包括
#包括
#包括
int main()
{  
INTA=10;
如果(a==10&&fork())
printf(“你好”);
其他的
printf(“世界”);
系统(“暂停”);
返回0;
}

fork
在Windows上不存在(除非您正在使用)。使用
CreateProcess

您使用的是
系统(“暂停”)
(顺便说一句,当您可以简单地使用
getchar()
,这是个坏主意),这让我相信您是在Windows上运行的。除非您使用类似CygWin的仿真层,
fork
在该平台上不可用


老实说,我不知道您是如何编译的,因为Windows通常也没有
unistd.h
,除非您安装了SFU或MinGW(尽管有
unistd.h
,但它可以简化编译代码的任务(较少的条件编译),不提供比Windows更多的功能。)

也不提供。如果他尝试编译,它会说无论如何都无法编译。我认为MinGW提供了一个版本的
。创建新进程的另一个选项是
\u spawnl()