在LINUX中检查简单的字符设备读/写function

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

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

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

现在用C写一个程序,用fopen打开文件,用freadfwrite读写数据; 你也可以使用write系统调用,但是freadfwrite是包装read标准C库函数。

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