Я пишу драйвер ядра Linux, который создает файл символьного устройства /dev/my_file. Несколько приложений пользовательского пространства выполняют open()
этого файла и используют предоставленную команду ioctl
для регистрации конкретных данных приложения. IOCTL также обеспечивает отмену регистрации cmd, которую приложения могут использовать и отменять регистрацию (ядро drv удаляет данные приложения, удаляет любое выделение памяти и т. д.) при чистом выходе. Однако, если приложение будет уничтожено после выполнения open()
и ioctl
, зарегистрируйте cmd. Как драйвер может определить, какое приложение было убито, а затем выполнить задачу очистки для удаления конкретных данных приложения. Я знаю, что вызывается .release
func ptr из struct file_operations
, и драйвер уведомляется, но не уверен, как drv может найти конкретное приложение, которое было убито.
Спасибо, Шиталь.