Подтвердить что ты не робот

Что противоположно "mknod"?

Я участвую в написании драйверов символов персонажа из Руководства по программированию модулей ядра] и использовал mknod для создания node в /dev для разговора с мой водитель.

Однако я не могу найти какой-либо очевидный способ удалить его после проверки man-страницы и наблюдения, что rmnod - несуществующая команда.

Каков правильный способ изменить эффект mknod и безопасно удалить node, созданный в /dev?

4b9b3361

Ответ 1

Правильная команда - это просто rm:)

Устройство node, созданное mknod, - это просто файл, который содержит основной и младший номер устройства. При первом обращении к этому файлу Linux ищет драйвер, который рекламирует этот майор/минор и загружает его. Затем ваш драйвер обрабатывает все операции ввода-вывода с этим файлом.

При удалении устройства node обычно используется обычное поведение файла Un * x: Linux будет ждать, пока не будет больше ссылок на файл, а затем он будет удален с диска.

Ваш водитель на самом деле ничего не замечает. Linux не автоматически выгружает модули. Ваш водитель wil просто больше не получает запросы на что-либо. Но он будет готов, если кто-нибудь воссоздает устройство node.

Ответ 2

Вероятно, вы ищете функцию, а не команду. unlink() - ответ. unlink() удалит файл/специальный файл, если процесс не открывается. Если какие-либо процессы открывают файл, файл останется до тех пор, пока последний дескриптор файла, ссылающийся на него, не будет закрыт. Подробнее здесь: http://man7.org/linux/man-pages/man2/unlink.2.html