1. scull.h 驱动程序由scullpipe改过来的
2. poll.c
3. Makefile
4. poll_testw.c 带参数,0表示打开第一设备,1表示打开第二个设备
5. poll_testr.c
6. Makefile
7. 开始测试
装载驱动程序
sudo insmod ./poll.ko
查看主设备号,这里假设为251
cat /proc/devices
建立设备节点
sudo mknod /dev/poll_pipe0 c 251 0
sudo mknod /dev/poll_pipe1 c 251 1
更改权限
sudo chgrp staff /dev/poll_pipe[0-1]
sudo chmod 664 /dev/poll_pipe[0-1]
在第一个终端打开读程序,程序阻塞在poll函数
sudo ./poll_testr.o
在第二个终端打开带参数为0的写程序
sudo ./poll_testw.o 0
结果:
第二个终端打印:Write 24 bytes to polltest
第一个终端打印:read Hello, Character driver! from polltest0
接着在第二个终端打开参数为1的写程序
sudo ./poll_testw.o 1
结果:
第二个终端打印:Write 24 bytes to polltest
第一个终端打印:read Hello, Character driver! from polltest1