为什么在编辑打开的文件时 Windows 会锁定,而 Linux 不会?

Pur*_*ret 2 windows linux filesystems

如果我LaTeX在 linux 中编写文件,我可以重新编译并且更改只是“出现”在打开的 PDF 上。如果我使用 bash 脚本来编辑 .txt 文件,我会得到重新加载它的选项。

在 Windows 中并非如此,它似乎更喜欢在文件关闭之前阻止我的操作。

为什么两者如此不同?这是文件系统的故障吗(我没有在 NTFS 或 FAT32 上的 Linux 中尝试过这个,只有 ext FS 之一)?或者有什么不同?

Ser*_*rge 6

您在 Linux 中使用的是什么 PDF 查看器?而在 Windows 中呢?

呃,我不知道。ubuntu 的标准版本?

这就是答案。这是实现定义的行为。在 Windows 中设计一个查看器是完全可行的,该查看器不会锁定文件以防止其他进程写入1并监视原始文件是否有可能发生的更改2并在发生此类更改时提示您。

但是,您可以阅读这篇文章来大致了解如何在类似 *nix 的系统中管理文件。


1程序员可以在调用CreateFile()时指定dwShareMode=FILE_SHARE_WRITE

2 FindFirstChangeNotification()在 Windows 上,inotify 在 Linux 上