Win32文件系统属性FILE_SUPPORTS_POSIX_UNLINK_RENAME功能及行为差异咨询
关于Win32文件系统属性FILE_SUPPORTS_POSIX_UNLINK_RENAME的说明
作用
该属性用于标识Win32文件系统是否支持POSIX风格的unlink/rename语义,核心是允许在文件处于打开状态时执行删除或重命名操作。
行为差异
对比未开启该属性的文件系统,开启后会产生以下关键行为变化:
- 删除/重命名的兼容性:默认情况下,若文件正被打开,调用
DeleteFile或MoveFile会直接失败,返回ERROR_SHARING_VIOLATION(共享冲突);开启该属性后,这类操作可成功执行。 - 延迟生效机制:执行删除或重命名后,文件不会立刻从文件系统中消失或完成更名,而是等待所有持有该文件句柄的进程关闭句柄后,才最终完成操作。
- 文件访问权限变化:文件被标记删除后,新进程尝试打开该文件会返回
ERROR_FILE_NOT_FOUND,但已经持有句柄的进程仍可正常读写文件,直到句柄关闭。
内容的提问来源于stack exchange,提问作者Roland Mainz
相关产品推荐
相关产品推荐

