c - 是否可以在 Windows 中打开匿名文件?

标签 c windows file winapi

我想打开一个匿名文件,它是在 linux 下打开文件并取消链接或使用 memfd_create 的结果,但这些在 windows 下似乎都不可用(你可以删除一个文件,但它的名字似乎在文件关闭之前不会被删除)。获取一个文件描述符,该文件描述符不受文件系统中可见内容的支持。

有没有办法在windows下实现?最好我希望它永远不会出现在文件系统中。

我想要这个的原因是因为我需要一个 FILE* 作为参数发送给一个函数,这个函数需要它(我不希望它破坏文件系统)。更改库看起来不像是一个可行的选择(此外库也必须在其他操作系统上工作 - 所以它们无论如何不能依赖于 Windows 特定的抽象)。

最佳答案

Windows 中最接近 memfd_create 的是内存映射文件。关于它的 MSDN 文章:http://go.microsoft.com/fwlink/?linkid=180801

但基本上,CreateFileMapping/OpenFileMapping API 调用。

这不使用物理磁盘(除非它需要在磁盘上分页的内存),但据我所知,memfd_create

关于c - 是否可以在 Windows 中打开匿名文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32177370/

相关文章:

c# - 如何获取我的应用程序的上次写入或构建时间?

c - 用 C 语言编写打印方法

c - 像正常对象的指针那样传递函数指针并对其进行比较是否安全?

c++ - shell_notifyicon : an attempt was made to reference a token that does not exist, 没有显示图标

perl - 为什么 Perl 文件测试运算符 "-l"检测不到符号链接(symbolic link)?

python - 删除换行符时遇到问题

c - 在 Visual Studio 中构建软件

c - 带管道 C 的 sscanf

windows - 我应该在 Windows 上使用哪个版本的 Perl?

c# - 如何使用 C#.net 替换 ListView 中一行中列的值?