Недавно я разработал простой модуль ядра файловой системы. Итак, мне нужно было назначить свою собственную функцию ioctl (.unlocked_ioctl
) структуре file_operation
для реализации определенных команд для модуля моей файловой системы. Например, файловая система Ext4 имеет свою собственную функцию ioctl.Доступ к файловой системе через функцию ioctl
Затем я создал файл с помощью команды dd
и установил его:
# mount -t myfs -o loop simple_file /mnt/
Все отлично работает, но как я могу получить доступ к этой файловой системе с помощью IOCTL с пользователем космической программой?
I судимого сделать ioctl(fd, MY_COMMAND_1, &my_struct_t);
(где fd
является дескриптором файла из Dev файла /dev/loop[0..7]
), но он возвращает меня Invalid argument
.
Thanks @Gilles. Я сделал это, но он вернул мне «Недопустимый ioctl для устройства». Итак, я заметил, что я использовал 'file_operations' только для каталогов, и я изменил на' fd = open ("/ mnt/something /", O_RDWR); и код работал. знак равно – jcfaracco