在最近的项目中,由于使用的显示屏的触摸效果不是很好,有时触摸的力度小了,就没反应,用户的手指有挡住了按键,不能看到按键按下的时的效果。于是就提出了在按键触发效果时蜂鸣器就叫一下。
在几经查找资料后,发现了ioctl()函数,能很好的控制I/O设备。
函数名:ioctl()
头文件:#include
用 法:int ioctl(int fd,unsigned int cmd,[int *argdx, int argcx]);
功 能:控制I/O设备 ,提供了一种获得设备信息和向设备发送控制参数的手段。用于向设备发控制和配置命令 ,有些命令需要控制参数,这些数据是不能用read / write 读写的,称为Out-of-band数据。也就是说,read / write 读写的数据是in-band数据,是I/O操作的主体,而ioctl 命令传送的是控制信息,其中的数据是辅助的数据。
ioctl()函数的返回值0代表成功,-1代表失败。
那我们看看函数的参数:
第一个是 int fd,学习过一段时间网络编程的人,一看就能联想到这是文件描述符,没错,linux下所有对设备和文件的操作都使用文件描述符来进行的。文件描述符是一个简单的整数,用以标明每一个被进程所打开的文件和socket。第一个打开的文件是0,第二个是1,依此类推。但 操作系统通常给每个进程能打开的文件数量强加一个限制。
简单点来说:fd就是用户程序打开设备时使用open函数返回的文件标示符。
第二个是unsigned int cmd,cmd是command(命令)的简写,在有些资料上我们也