【问题标题】:operating systems操作系统
【发布时间】:2011-04-02 03:00:47
【问题描述】:

我正在尝试在 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");
    }
}

【问题讨论】:

标签: c


【解决方案1】:

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

 #include <unistd.h>

但是,您似乎使用的是 Windows,而 fork() 在 Windows 上不可用。 This page 讨论了一种 Windows 解决方法。

最大的差异之一 在过程模型中。 UNIX 有 叉; Win32 没有。取决于 使用 fork 和代码库,Win32 有两个可以使用的 API: 创建进程和创建线程。一个 UNIX 分叉多个副本的应用程序 本身可以在 Win32 中返工为 有多个进程或一个 具有多个线程的单个进程。 如果使用多个进程,则 是 IPC 的多种方法,可以 用于通信之间 流程(也许是为了更新 新流程的代码和数据 像父母一样,如果功能 需要叉子提供的)。为了 有关 IPC 的更多信息,请参阅进程间 通讯。

【讨论】:

    【解决方案2】:

    fork() 仅在 posix 系统上可用。它在 Windows 上肯定不可用。您确定您的操作系统提供 fork 吗?

    【讨论】:

      猜你喜欢
      • 2014-05-27
      • 1970-01-01
      • 2012-02-05
      • 1970-01-01
      • 2011-02-11
      • 2013-08-29
      • 1970-01-01
      • 2022-06-20
      • 2018-01-29
      相关资源
      最近更新 更多