我在C ++应用程序中创建临时文件时使用了两个标志FILE_ATTRIBUTE_TEMPORARY
和FILE_FLAG_DELETE_ON_CLOSE
。根据{{3}},不应该在磁盘上创建任何文件。但是在我的代码中,文件被创建并写入磁盘(即使是1 KB数据)。有人可以确认这些标志的确切功能,以及文件是否在磁盘上创建?
答案 0 :(得分:10)
稍后在同一个链接中,有引用:
如果你超过可用内存,那么 内存管理器将刷新文件 数据到磁盘。这导致了 性能命中,但你的操作 会成功而不是失败。
将文件标记为临时文件会告诉系统它不会需要在磁盘上,但它也不会阻止它被放在那里。
答案 1 :(得分:7)
它只是说该文件永远不会刷新到磁盘。这意味着,虽然它存在于您的文件系统中,但它永远不会物理存储在您的硬盘驱动器上。文件系统将显示它,具有实际大小和所有。