【问题标题】:How can I create a file stream? [duplicate]如何创建文件流? [复制]
【发布时间】:2014-01-23 12:27:33
【问题描述】:

文件流总是通过指针访问,并且它们总是预先创建的。但是是否有可能在程序内部创建一个文件流作为一个在内存中保存空间而不使用外部文件的对象?

我的第一个想法是声明一个FILE * 指针,然后使用malloc()FILE 对象分配内存:

FILE *fileStream = malloc(sizeof(FILE));

但我想这是不对的。

我怎样才能以正确的方式做到这一点,以便我可以使用 fprintf()fscanf() 等 I/O 函数来处理 fileStream ...

【问题讨论】:

  • fopen 有什么问题?
  • 您的意思是要将内存中的缓冲区视为文件吗?
  • @larsmans 是的,就像stdin ...
  • 我还是不明白你的意思。 stdin 是香草FILE*
  • @larsmans stdinFILE* 但它指向内存中的一个空间,不是吗?

标签: c memory-management io filestream


【解决方案1】:

C 本身不支持这一点。您将需要使用特定于平台的方法。例如,如果在 Unix 上,您可以组合 memmapfdopen。对于其他平台,请参阅平台文档。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-07-10
    • 2014-07-23
    • 2021-10-15
    • 1970-01-01
    • 2021-03-06
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多