Как получить строку и длину строки в режиме ядра Linux? - PullRequest
0 голосов
/ 25 мая 2019

Я на самом деле новичок в программировании режима ядра Linux.Я должен получить данные из программы test.c пользовательского режима и записать их в ядро ​​моего драйвера mydrv.c

Что я сделал, так это получил строку ввода от scanf и записал ее как write (file), out, MAX_SIZE);

файл - это устройство, а out - входная строка.в mydrv_write я пытался получить строковую длину ввода с помощью strlen, но процесс завершался всякий раз, когда я пытался его реализовать, я включал его перед программой.

Я предполагаю, что входная строка не попала должным образом вядро.Итак, как получить длину строки внутри ядра?

1 Ответ

0 голосов
/ 25 мая 2019

вы пробовали что-то вроде этого:

#define strLength(x) (sizeof(x) / sizeof((x)[0]))

но это marco даст вам размер всего массива строк. и теперь я смотрю на некоторый исходный код Linux. linux-4.19.3/drivers/bluetooth/btmrvl_sdio.c:1471:

fw_dump_ptr += strlen("========Start dump ");

Я думаю, что нет проблем с использованием strlen или любых string.h функций в вашей программе.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...