Я нашел несколько подобных вопросов в Интернете, но ничто не решает мою проблему, и я не понимаю обоснования. Второй и третий из них не возвращают никакой ошибки в пользовательском пространстве, но ничто не печатается в DMESG, поэтому похоже, что они не выполняются. Почему это так?int main(void)
{
int fd = open("/dev/mydev", O_RDWR);
if (fd < 0)
{
fprintf(stdout, "Failed to open dev: %s\n", strerror(errno));
return -1;
}
unsigned long foo = 0x01;
unsigned int bar = 123;
if(ioctl(fd, foo, &bar)
"Получен 0x02" Никогда не печатается, и я никогда не вижу "cmd: 0x2".
Вывод, который я получаю: < /p>
cmd: 0x1
received 0x01
init done.
< /code>
Нет segfault, coredump или как бы ни был.
я вижу в stdout: < /p>
OK
OK
OK
Подробнее здесь: https://stackoverflow.com/questions/796 ... l-syscalls
Почему мой пространственный модуль ядра не выполняет все мои syscalls ioctl? ⇐ Linux
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение
-
-
Как позвонить в IOCTL из ядра в ядре Linux после версии 5.18 и для 64-битной арки
Anonymous » » в форуме Linux - 0 Ответы
- 18 Просмотры
-
Последнее сообщение Anonymous
-