我是 Linux 内核编程的新手。我写了一个简单的内核模块和字符设备。我定义了设备的 open()、release()、read() 和 write() 方法。我用 insmod 初始化我的模块并用 rmmod 删除它,一切正常。现在我想检查设备的 read() write() 方法。你能告诉我如何编写一个用户程序来实现我的字符设备的读/写方法吗?谢谢。
最佳答案
当你有一个字符设备并且你想检查你对 read
的实现时,你可以做的第一个测试和 write
系统调用是为了:
- 写
echo
外壳命令: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
的标准 C 库函数和 write
.
关于在 LINUX 中检查简单的字符设备读/写函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9276345/