【问题标题】:Checking simple char device read/write functions in LINUX在 LINUX 中检查简单的字符设备读/写功能
【发布时间】:2012-02-14 11:51:18
【问题描述】:
我是 linux 内核编程的新手。我写了一个简单的内核模块和字符设备。我定义了设备的 open()、release()、read() 和 write() 方法。我用 insmod 初始化我的模块并用 rmmod 删除它,一切正常。现在我想检查设备的 read() write() 方法。你能告诉我如何编写一个应该实现我的字符设备的读/写方法的用户程序吗?谢谢。
【问题讨论】:
标签:
c
linux
linux-kernel
linux-device-driver
【解决方案1】:
当你有一个字符设备并且你想检查你的 read 和 write 系统调用的实现时,你可以做的第一个测试是:
- 使用
echo shell 命令写入: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 是包装read 和write 的标准C 库函数。
【解决方案2】:
如果尚未自动创建设备文件,则必须在 /dev 中创建设备文件。然后您可以编写一个程序来打开和读取/写入该文件。