【发布时间】:2013-09-11 08:03:54
【问题描述】:
如何被动监听 stderr 并将其作为字符串发送到回调?我看过有关阅读 stderr 的帖子,但我想听它而不是积极阅读它。
背景: 我有一个使用 3rd 方库 (libcurl) 的跨平台作品,它将详细信息输出到 stderr。这个跨平台部分将被超过 1 个非跨平台应用程序使用。
我想记录这些信息,我可以通过向 libcurl 提供 FILE* 来实现。但我不想这样做,而是想看看我是否可以捕获(被动监听)stderr 作为字符串中的输出,并通过回调发送回调用主应用程序。这有以下好处: 1. 主应用程序可以使用它想要的任何日志记录工具来保留单个日志。 2. 它将保持这件作品跨平台。
【问题讨论】:
-
C++。但我很少使用 std(因为我不确定它是否足够跨平台)。
-
我不清楚你在做什么。您有一个 C/C++ 程序,它正在链接到正在写入 stderr 的第 3 方库 - 所有这些都在一个进程中 - 您想以编程方式捕获该输出?
标签: c++ cross-platform stdout stderr