1. complete.c 只是一个简单的字符驱动,但是我加进去了completion来同步读写操作
2. Makefile
3. completion_testr.c 调用read函数
4. completion_testw.c 调用write函数
5. Makefile 使用make all编译读写程序
6. 开始测试啦
装载completion驱动
sudo insmod complete.ko
查看主设备号,假设为251
cat /proc/devices
建立设备节点
sudo mknod /dev/completion c 251 0
更改权限
sudo chgrp staff /dev/completion
sudo chmod 664 /dev/completion
实验1: 先运行completion_testw,再运行completion_testr
结果: write ok! code=0
read ok! code=0
实验2: 先运行两个completion_testr,再运行两个completion_testw
结果: completion_testr 1 阻塞
completion_testr 2 阻塞
completion_testw 1 打印 write ok! code=0
同时 completion_testr 1 打印 read ok! code=0
completion_testw 2 打印 write ok! code=0
同时 completion_testr 2 打印 read ok! code=0