我正在使用系统功能,该功能将输出信息写入文件指针流中。
func(FILE *__fp)
我需要在程序中使用此信息,而不是将其打印到文件中。为此,我想到了创建一个tmpfile()
并对其进行写入,然后从中读取的内容。但是,有没有更好的方法来获取此信息?
答案 0 :(得分:1)
有一些特定于操作系统的解决方案,可以写入内存缓冲区而不是文件,例如POSIX fmemopen
或open_memstream
(考虑到您的linux
,这两种方法都非常有用标签)。
您还可以使用setvbuf
将内部缓冲区更改为自己的缓冲区。
不相关的注释:保留 ,这些符号以前导下划线开头,后跟另一个下划线(例如您的__fp
自变量)。此类符号只能由“实现”(即编译器和库)使用。