2012-02-14 33 views
2

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

回答

3

当你有一个字符设备,你要检查你的readwrite系统调用的实现,你可以做的第一个测试是:

  • 写与echo shell命令:echo 42 > /dev/char_device
  • 与阅读cat命令或指定的字节数与head命令(或dd)并转换为十六进制,如有必要用od -xhead -8 /dev/char_device | od -x

现在用C写一个程序,只需用fopen打开文件,用freadfwrite来读写数据;您还可以使用readwrite系统调用,但freadfwrite是标准C库函数,它们包装为readwrite

3

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