【发布时间】:2019-02-18 21:33:25
【问题描述】:
我正在使用将输出信息写入文件指针流的系统函数。
func(FILE *__fp)
我需要在我的程序中使用此信息,而不是将其打印到文件中。为此,我想创建一个tmpfile() 并写入它,然后从中读取。但是有没有更好的方法来获取这些信息?
【问题讨论】:
我正在使用将输出信息写入文件指针流的系统函数。
func(FILE *__fp)
我需要在我的程序中使用此信息,而不是将其打印到文件中。为此,我想创建一个tmpfile() 并写入它,然后从中读取。但是有没有更好的方法来获取这些信息?
【问题讨论】:
有一些特定于操作系统的解决方案可以写入内存缓冲区而不是文件,例如 POSIX fmemopen 或 open_memstream(考虑到您的 linux 标签,这两者都应该非常有用)。
您也可以使用setvbuf 将内部缓冲区更改为您自己的。
在不相关的注释中:以下划线开头并后跟另一个下划线(例如您的__fp 参数)的符号是保留。此类符号只能由“实现”使用,即编译器和库。
【讨论】: