【问题标题】:popen equivalent in c++c++中的popen等价物
【发布时间】:2011-03-12 13:20:29
【问题描述】:

它们的任何 C popen() 在 C++ 中是否等效?

【问题讨论】:

  • 请注意,popen 不是 C99 标准 规定的函数。它在 POSIX 中,因此可以在您的 POSIX 系统的 C++ 代码中使用。

标签: c++ posix popen


【解决方案1】:

C++ 是 C 的超集。popen 也可用于 C++ 代码。

【讨论】:

  • 我认为标准不要求 popen。
  • 哪个标准? popen 来自 POSIX.1-2001。甚至 Windows 也有一个 POSIX 兼容层。当然,Linux 和 MacOS 本身就支持它。它是一个库函数,而不是 C 标准本身的一部分。
  • 从技术上讲,C++ 不是 C 的超集。
  • @You:说 C++ 不是 C 的超集就像说 Python 3.0 不是 Python 2.7 的超集。虽然在技术上是正确的,但它对任何人都没有用,除了试图开始争论的迂腐者
  • C++ 绝对不是 C 的超集。
【解决方案2】:

如果您想要一种面向对象的方法来管理子流程,您可以使用“尚未正式发布”boost.process

如果您不介意这一切的 C 特性,您也可以只使用 popen 本身。

【讨论】:

    【解决方案3】:

    在任何标准中都没有 C++ 等效项,但是可以在各种 UI 工具包(例如 QTglibmm)和 pstreams library 中找到围绕此函数(和其他 POSIX 进程函数)的 C++ 包装器。

    【讨论】:

      猜你喜欢
      • 2010-10-01
      • 2011-04-02
      • 2021-10-15
      • 2013-10-20
      • 2011-04-10
      • 2021-12-02
      • 2010-09-14
      • 2016-12-24
      相关资源
      最近更新 更多