如何在C中将文件流转换为字符串?

时间:2018-09-14 05:57:18

标签: c linux file-io

我正在使用系统功能,该功能将输出信息写入文件指针流中。

func(FILE *__fp)

我需要在程序中使用此信息,而不是将其打印到文件中。为此,我想到了创建一个tmpfile()并对其进行写入,然后从中读取的内容。但是,有没有更好的方法来获取此信息?

1 个答案:

答案 0 :(得分:1)

有一些特定于操作系统的解决方案,可以写入内存缓冲区而不是文件,例如POSIX fmemopenopen_memstream(考虑到您的linux,这两种方法都非常有用标签)。

您还可以使用setvbuf将内部缓冲区更改为自己的缓冲区。


不相关的注释:保留 ,这些符号以前导下划线开头,后跟另一个下划线(例如您的__fp自变量)。此类符号只能由“实现”(即编译器和库)使用。