首先是一个自定义的设备结构。这里采用虚拟设备,该设备用于保存并读写一定长度的字符串。结构定义为:
struct MyCharDev{
char reg1; size_t count;
char* buff; size_t size;
};
分别用两个函数Char_init()和Char_uninit()对虚拟设备进行初始化和清理工作,分别在模块初始化和模块卸载函数中调用这两个函数。此外,还定义了读取和写入两个函数。
六、程序的测试
编译源代码。创建文件节点,加载设备,并编写一个简单的应用程序进行测试。
测试程序部分源代码:
int main(){
int fd = 0;
char str1[] = "Hello world!";
char str2[20] = "";
fd = open("./MyChrDev", O_RDWR);
puts(str1);
write(fd, str1, 12);
read(fd, str2, 12);
puts(str2);
return 0;