【问题标题】:Pipe external process's output into running C++ script将外部进程的输出通过管道传输到正在运行的 C++ 脚本中
【发布时间】:2012-03-01 20:55:47
【问题描述】:

我正在使用 C++ 的 SFML 框架制作一个简单的 bash 终端。我了解如何使用 system() fn 启动外部进程,但我需要一种将子进程的输出流式传输到当前脚本的方法。有没有一种简单的方法可以做到这一点?也许使用 fstream hack?我正在使用 Unix。

【问题讨论】:

  • 哪个操作系统? linux上有popen可以做你想做的事
  • 这是一个 POSIX 函数,不仅在 Linux 上。 ;-)
  • @DejanLekic 我宁愿安全也不愿后悔 :) 我只能声称它在我的 linux 操作系统上,但感谢您的更正!

标签: c++ stream terminal


【解决方案1】:

您需要使用pipe()s - 。基本思想是 fork() 然后到 dup2() 文件描述符 0 (stdin)、1 (stdout) 和 2 (stderr) 分别进入特定管道,然后到 waitpid() 在你的“主”分支直到你在“子”分支上获得WIFEXITED 为止。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2023-03-23
    • 2017-01-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多