Filesystems 内核如何知道文件已关闭

Filesystems 内核如何知道文件已关闭,filesystems,kernel,inotify,pyinotify,Filesystems,Kernel,Inotify,Pyinotify,linux知道文件已关闭的具体机制是什么? 我知道当文件关闭时,INOTIFY等命令会在写入事件中触发。但是它是如何工作的呢?什么触发文件关闭 类似地,操作系统如何知道文件已打开以及它在哪里注册该事实?有一个“打开的文件”表,列出所有打开的流以及它们在内存中指向的位置 这可能会有所帮助:操作系统(即内核)是实际打开和关闭文件的操作系统。每次程序想通过系统调用打开/关闭文件时,都必须通知操作系统代表它打开/关闭文件。操作系统只需跟踪这些通过自身进行的呼叫。谢谢。让我用一个例子问一下我的具体问题:假

linux知道文件已关闭的具体机制是什么? 我知道当文件关闭时,INOTIFY等命令会在写入事件中触发。但是它是如何工作的呢?什么触发文件关闭


类似地,操作系统如何知道文件已打开以及它在哪里注册该事实?

有一个“打开的文件”表,列出所有打开的流以及它们在内存中指向的位置


这可能会有所帮助:

操作系统(即内核)是实际打开和关闭文件的操作系统。每次程序想通过系统调用打开/关闭文件时,都必须通知操作系统代表它打开/关闭文件。操作系统只需跟踪这些通过自身进行的呼叫。

谢谢。让我用一个例子问一下我的具体问题:假设我在/tmp目录下的服务器a上启动了一个FTP进程。我使用PYINOTIFY(IN_CLOSE_WRITE事件)查看目录。FTP成功完成后,将触发IN_CLOSE_写入。但即使FTP因任何原因中途失败,也会触发IN_CLOSE_WRITE事件。操作系统知道FTP进程不再写入文件的机制是什么(与仍在写入文件但延迟很高的FTP进程相反)?@A J:您确定FTP服务器在一次写入后没有手动关闭文件吗?当前Linux内核在哪里存储打开的文件?@moose Global open file table。