检查LINUX中的简单字符设备读/写功能

时间:2012-02-14 11:51:18

标签: c linux linux-kernel linux-device-driver

我是linux内核编程的新手。我写了一个简单的内核模块和char设备。我定义了设备的open(),release(),read()和write()方法。我用insmod初始化我的模块并用rmmod删除它,所有工作都正确。现在我想检查设备的read()write()方法。你能告诉我如何编写一个应该实现我的char设备的读/写方法的用户程序吗?谢谢。

2 个答案:

答案 0 :(得分:3)

如果尚未自动创建设备文件,则必须在/dev中创建设备文件。然后,您可以编写一个打开和读取/写入该文件的程序。

答案 1 :(得分:3)

当您拥有角色设备并且想要检查readwrite系统调用的实现时,您可以执行的第一项测试是:

  • 使用echo shell命令编写:echo 42 > /dev/char_device
  • 使用cat命令读取或使用head命令(或使用dd)读取指定数量的字节,并在必要时使用od -x转换为十六进制:{{ 1}}

现在用C编写程序,只需使用head -8 /dev/char_device | od -x打开文件,然后使用fopenfread来读写数据;您也可以使用fwriteread系统调用,但writefread是包含fwriteread的标准C库函数。