Как ядро ​​знает, что файл закрыт

Каков механизм, с помощью которого Linux знает, что файл был закрыт? Я знаю, что такие команды, как INOTIFY, будут вызывать событие IN_CLOSE_WRITE при закрытии файла. Но как это работает? Что вызывает закрытие файла?

Точно так же, как ОС узнает, что файл был открыт, и где он регистрирует этот факт?

2 ответа

ОС (т.е. ядро) - это та, которая фактически открывает и закрывает файлы. Программа должна будет указывать ОС открывать / закрывать файлы от ее имени каждый раз, когда она хочет сделать это с помощью системных вызовов. ОС может просто отслеживать эти вызовы, которые проходят через себя.

Существует открытая таблица файлов, в которой перечислены все открытые потоки и места, на которые они указывают в памяти.

Это может помочь: http://www.cs.kent.edu/~walker/classes/os.f07/lectures/Walker-11.pdf

Другие вопросы по тегам