Ядро ОС Linux



         

7. Функции open() и release().


  • struct inode *inode
    - Указатель на inode
  • struct file *file
    - Указатель на файловую структуру
  • Функция вызывается после открытия специальных файлов устройств. Она является механизмом слежения за последовательностью выполняемых действий. Если устройством пользуется лишь один процесс, функция open() закроет устройство любым доступным в данный момент способом, обычно устанавливая нужный бит в положение "занято". Если процесс уже использует устройство (бит уже установлен), open() возвращает -EBUSY.

    Если же устройство необходимо нескольким процессам, эта функция обладает возможностью любой очередности.

    Если устройство не существует, open() вернет -ENODEV.

    Функция release() вызывается лишь тогда, когда процесс закрывает последний файловый дескриптор. release() может переустанавливать бит "занято". После вызова release(), вы можете очистить куски выделенной kmalloc() памятью под очереди процессов.




    Содержание  Назад  Вперед