我正在尝试使用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");
}
}发布于 2011-04-02 11:02:54
fork()仅在posix系统上可用。它在windows上肯定是不可用的。您确定您的操作系统提供了fork吗?
发布于 2011-04-02 11:03:52
通常,您还需要以下内容才能获得fork()
#include <unistd.h>但是,您似乎正在使用Windows,而fork()在Windows上不可用。This page讨论了一种Windows解决方案。
最大的不同之处之一在于流程模型。UNIX有fork,而Win32没有。根据fork的使用和代码库的不同,Win32有两个可以使用的API: CreateProcess和CreateThread。派生自身多个副本的UNIX应用程序可以在Win32中修改为具有多个进程或具有多个线程的单个进程。如果使用多个进程,那么可以使用多个IPC方法在进程之间进行通信(如果需要fork提供的功能,还可以将新进程的代码和数据更新为父进程)。有关进程间通信的更多信息,请参见进程间通信。
https://stackoverflow.com/questions/5520823
复制相似问题