2

在 C 标准库中,使用内存流(通过为数组创建fmemopen())的目的是什么?与直接操作数组相比如何?

4

1 回答 1

0

这与在 C++ 中使用非常相似std::stringstream,它允许您写入字符串(包括'\0'字符),然后使用您想要的字符串。

这个想法是我们可以使用许多函数,例如fprintf(),它们可用于以格式化的方式将数据写入流。所有这些功能都可以与基于内存的文件一起使用,而不需要在 to 之外的任何地方进行进一步的fopen()更改fmemopen()

因此,如果您想创建一个需要 many 的字符串fprintf(),使用该函数在内存中生成字符串非常有用。如果您只需要一次快速转换,snprintf()也可以使用。

同样,你当然可以使用fread()andfwrite()之类的。如果您需要创建一个需要大量查找的文件,并且它不是那么大以至于可以轻松放入内存中,那么它的速度会快很多。完成后,您可以将结果保存到磁盘。

于 2022-01-29T22:02:40.827 回答