高级字符驱动程序操作之ioctl(实践篇)

为了简单,我在“字符设备驱动程序(实践篇)”的基础上进行修改,来掩饰ioctl的用法。

 

1. scull.h 其中添加ioctl用到的命令

 

 

2. scull.c 添加ioctl函数,修改scull_fops

 

 

3. Makefile不变

 

 

 

4. make生成scull.ko

 

装载scull模块

sudo insmod scull.ko

查看主设备号 这里假设为251

cat /proc/devices

建立设备节点

sudo mknod /dev/scull0 c 251 0

sudo mknod /dev/scull1 c 251 1

sudo mknod /dev/scull2 c 251 2

sudo mknod /dev/scull3 c 251 3

更改权限

sudo chgrp staff /dev/scull[0-3]

sudo chmod 664 /dev/scull[0-3]

 

5. ioctl_test.c

 

 

6. 编译测试程序

gcc ioctl_test.c -o ioctl_test.o

 

开始测试啦

sudo ./ioctl_test.o

 

打印结果:

1. code should be 10, and actually code == 10
2. code should be 10, and actually code == 10
3. code should be 5, and actually code == 5
4. code should be 10, and actually code == 10
5. code should be 10, and actually code == 10
6. code should be 7, and actually code == 7

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值