Проверка функций чтения / записи простых символов в LINUX - PullRequest
2 голосов
/ 14 февраля 2012

Я новичок в программировании ядра Linux. Я написал простой модуль ядра и устройство char. Я определил методы устройства open (), release (), read () и write (). Я инициализирую свой модуль с помощью insmod и удаляю его с помощью rmmod, и все работает правильно. Теперь я хочу проверить методы read () write () устройства. Не могли бы вы рассказать мне, как написать пользовательскую программу, которая должна реализовывать методы чтения / записи моего char-устройства? Спасибо.

Ответы [ 2 ]

3 голосов
/ 14 февраля 2012

Первый тест, который вы можете выполнить, когда у вас есть символьное устройство и вы хотите проверить реализацию системных вызовов read и write, заключается в:

  • записи с помощью оболочки echoкоманда: echo 42 > /dev/char_device
  • читать с помощью команды cat или с указанным числом байтов с помощью команды head (или с dd) и преобразовывать в шестнадцатеричное с помощью od -x при необходимости: head -8 /dev/char_device | od -x

Теперь, чтобы написать программу на C, просто используйте fopen, чтобы открыть файл, и используйте fread и fwrite, чтобы читать и записывать данные;Вы также можете использовать системные вызовы read и write, но fread и fwrite - это стандартные функции библиотеки C, которые переносят read и write.

3 голосов
/ 14 февраля 2012

Вам необходимо создать файл устройства в /dev, если он еще не создан автоматически.Затем вы можете написать программу, которая открывается и читает / пишет в этот файл.

...