对于linux而言,内核程序和用户程序分别运行在内核空间和用户空间,要实现两者的数据交换,主要有以下几种方式:系统调用,读写系统文件(procfs,sysfs, seq_file,debugfs等), Netlink, 内核模块加载参数,内核启动参数,以及设备驱动实现的设备读.写.控制(ioctl)(这种方式可以归结到读写系统文件). 设备驱动的实现过程中一般都会通过struct file_operations来实现对设备文件读.写以及控制命令.下面就仅通过ioctl的实现来说明通过字符设备,如…