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

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

我是 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打开文件并使用 freadfwrite读取和写入数据;你也可以使用 readwrite系统调用,但是 freadfwrite是包装 read 的标准 C 库函数和 write .

关于在 LINUX 中检查简单的字符设备读/写函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9276345/

相关文章:

c - 函数未提供有效输出(Visual Studio 2010 上的 C)

objective-c - 在运行时从类外部访问 Objective-C ivar

c - 这是一个 clang 错误吗? typedef 的匿名结构

linux命令行问题

linux - 我自己的 linux Chorded 键盘驱动程序和我的嵌入式应用程序的接口(interface)

c - 多键快速排序崩溃

linux - 将文本文件转换为列

linux - 如何将值传递给另一个代码以在 linux 中执行进程

file - stat()/fstat()函数最终是否打开或读取文件以获取属性?

linux - 在 epoll 被阻塞时添加/删除 fd