如何使Windows文件锁定更像UNIX文件锁定?
UNIX文件锁定是非常容易的:操作系统假定您知道您正在做什么,并让您执行所需:
例如,如果您尝试删除另一个进程已打开的文件,则操作系统通常会让您执行此操作。原始进程仍然保持它的文件句柄,直到它终止 – 在这一点上,文件系统将安静地重新循环磁盘资源。不要紧,这就是我喜欢的方式。 在Windows上有什么不同的东西:如果我尝试删除另一个进程使用的文件,我得到一个操作系统错误。该文件是不可触摸的,直到原始进程释放它在文件上的锁定。在MS-DOS的单用户日子里,当任何锁定进程可能位于包含文件的同一台计算机上时,这是非常好的,但是在网络上这是一场噩梦: 考虑在Windows文件服务器上写入共享文件时进程挂起时会发生什么。在文件可以删除之前,我们必须找到计算机和ID,该计算机上最初打开该文件的进程。只有这样,我们才能杀死进程并删除我们不需要的文件。 真讨厌! 有没有办法使这更好?我想要的是在Windows上的文件锁定在UNIX中表现为类似的文件锁定。我想要操作系统让我做我想要的,因为我负责,我知道我在做什么… 那么可以做到吗
根据MSDN可以指定CreateFile()第三个参数(dwSharedMode)共享模式标志FILE_SHARE_DELETE哪个:
http://msdn.microsoft.com/en-us/library/aa363858(VS.85).aspx 所以如果你可以控制你的应用程序,你可以使用这个标志。 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- Windows Azure和动态弹性
- windows-phone-7 – 在Mango中,是否可以在类库中引用后台代
- windows-server-2012 – 处理Stretch(Geo)群集节点故障
- windows – SDL_Image IMG_Load在png上失败:“加载libpng1
- Windows – 批处理文件脚本以压缩文件
- winforms – Windows服务的运行时调试技巧?
- Windows上的透明缓存 – 到期时间
- windows-phone-7 – 在Windows Phone 8中,我不断收到System
- windows – 如何以编程方式更改静态IP地址?
- windows-server-2012-r2 – 有人可以解释为什么群集共享卷(
- caffe了(window官方版win7+VS2013)
- cnpm安装过程中提示optional install error: Pac
- windows – 如何在bash脚本中访问/ cygdrive / c
- libintl3和libiconv2 for gnu make在windows上,需
- windows-8 – 如何在Windows 8.1(IE11和Modern U
- 使用Windows Azure进行GeoIP路由
- Unauthorizedaccessexception:如何等待来自用户
- 在Windows上使用.NET获取实际的文件名(具有正确的
- 使用Clojure连接到Microsoft SQL Server
- windows-server-2012-r2 – 事件查看器过滤不起作