0
OS/VFS/FUSE層是否管理同一個文件的多個句柄的語義,還是驅動程序必須仲裁的東西?FUSE:在同一個文件上打開多個
OS/VFS/FUSE層是否管理同一個文件的多個句柄的語義,還是驅動程序必須仲裁的東西?FUSE:在同一個文件上打開多個
簡而言之:如果你想禁止,你必須在驅動程序中處理它。
長:我在POSIX error codes of open()中沒有找到任何指示可以防止在同一個進程中對同一文件有多個句柄。 Wikipedia states,這是細:
相同的文件可以同時被幾個進程取決於文件組織和文件系統被打開,甚至通過相同的工藝(導致對同一文件幾個文件描述符)。
FUSE in it's documentation也不譴責它;它通常只是代表語義。
爲了嘗試它,我用Python打開了兩次相同的文件,並獲得了兩個不同的文件描述符。
In [1]: fd1 = open("./resting.org")
In [2]: fd2 = open("./resting.org")
In [3]: fd1.fileno()
Out[3]: 5
In [4]: fd2.fileno()
Out[4]: 6
所以,你必須阻止它自己,可能會留POSIX兼容的,因爲它是不確定的,但可能違反假設一些不知情的程序員做。
優秀貢獻。感謝您的工作。 – 2014-11-04 15:34:12