我是linux内核编程的新手。我写了一个简单的内核模块和char设备。我定义了设备的open(),release(),read()和write()方法。我用insmod初始化我的模块并用rmmod删除它,所有工作都正确。现在我想检查设备的read()write()方法。你能告诉我如何编写一个应该实现我的char设备的读/写方法的用户程序吗?谢谢。
答案 0 :(得分:3)
如果尚未自动创建设备文件,则必须在/dev
中创建设备文件。然后,您可以编写一个打开和读取/写入该文件的程序。
答案 1 :(得分:3)
当您拥有角色设备并且想要检查read
和write
系统调用的实现时,您可以执行的第一项测试是:
echo
shell命令编写:echo 42 > /dev/char_device
cat
命令读取或使用head
命令(或使用dd
)读取指定数量的字节,并在必要时使用od -x
转换为十六进制:{{ 1}} 现在用C编写程序,只需使用head -8 /dev/char_device | od -x
打开文件,然后使用fopen
和fread
来读写数据;您也可以使用fwrite
和read
系统调用,但write
和fread
是包含fwrite
和read
的标准C库函数。