操作系统

时间:2011-04-02 03:00:48

标签: c

我正在尝试在C ++中使用fork()wait()系统调用。

我的代码非常简单。但是我收到以下错误:

error C3861: 'fork': identifier not found 

我已经包含以下头文件。我是否必须在此处添加其他标题?我做错了什么?

#include<stdafx.h>
#include <sys/types.h>
#include <signal.h>

int main(){

    if(fork()==0)
    {
        printf("from child");
    }
    else
    {
        printf("from parent");
    }
}

2 个答案:

答案 0 :(得分:9)

通常,您还需要以下内容才能获得fork()

 #include <unistd.h>

但是,您似乎在使用Windows,并且fork()在Windows上不可用。 This page讨论了Windows解决方案。

  

最大的差异之一   是在过程模型中。 UNIX有   叉子; Win32没有。取决于   使用fork和代码库,Win32   有两个可以使用的API:   CreateProcess和CreateThread。一个UNIX   分发多份副本的应用程序   它本身可以在Win32中重新编写   有多个过程或一个   具有多个线程的单个进程。   如果使用多个进程,那么   可以使用多种IPC方法   被用来沟通   进程(也许更新   新流程的代码和数据   像父,如果功能   需要fork提供)。对于   有关IPC的更多信息,请参阅Interprocess   Commuications。

答案 1 :(得分:4)

fork()仅适用于posix系统。它当然不适用于Windows。你确定你的操作系统提供了fork吗?