В struct file_operations
объекте нет функций обратного вызова обязательно .
Когда VFS (Virtual FileSystem) обнаруживает, что какая-то функция имеет значение NULL, она может интерпретировать ее как реализацию по умолчанию (например, .open()
и .close()
просто возвращает 0 по умолчанию) или как "для данного файла данная функциональность не поддерживается"(например, отсутствие .write()
и некоторых других полей означает, что данный файл не поддерживает запись в него).
Заполните только те функции, которые необходимы для реализации нужной вам функции.
Единственное поле в struct file_operations
, которое рекомендуется заполнить , это поле owner
. В большинстве случаев его следует установить на THIS_MODULE
:
.owner = THIS_MODULE
Таким образом вы защитите другие функции обратного вызова от разгрузки модуля .