C 将在控制台中打印的函数的打印消息保存为字符串

C 将在控制台中打印的函数的打印消息保存为字符串,c,string,console,C,String,Console,假设有一个名为Func的函数是用C语言编写的Func使用printf命令在控制台中打印字符串 重要的是我无权访问Func的实现 问题:如何将打印的Func消息保存为字符串 我认为CDo中有一个sprintf(),您希望捕获写入标准输出的所有消息,或者仅捕获由Func()编写的消息?那么Func()调用的函数呢?如果它只是Func()和它调用的内容,那么如果没有实现,将很难做任何事情,特别是对Func()的间接调用。很难接近不可能,尽管这取决于您愿意去的平台具体程度。任何这样的技术都会非常复杂。@

假设有一个名为
Func
的函数是用C语言编写的
Func
使用
printf
命令在
控制台中打印字符串

重要的是我无权访问
Func
的实现

问题:如何将打印的
Func
消息保存为字符串


我认为CDo中有一个sprintf(),您希望捕获写入标准输出的所有消息,或者仅捕获由
Func()编写的消息?那么
Func()
调用的函数呢?如果它只是
Func()
和它调用的内容,那么如果没有实现,将很难做任何事情,特别是对
Func()
的间接调用。很难接近不可能,尽管这取决于您愿意去的平台具体程度。任何这样的技术都会非常复杂。@JonathanLeffler我想捕获所有写入标准输出的消息。您是在POSIX平台上工作,如Linux或macOS,还是在Windows平台上工作?这两种情况的答案是不同的。您说过要捕获“写入标准输出的所有消息”-这是否意味着“包括由与
Func()
无关的其他函数编写的消息,还是仅捕获由
Func()
创建的消息及其调用的函数?”您何时需要访问该字符串?您计划如何访问它?在最坏的情况下,您可能会捕获多少数据(是否会超过64kib)?[……继续……]