linux系统下的ioctl函数 转
我这里说的ioctl函数是在驱动程式里的,因为我不知道更有没有别的场合用到了ioctl,
所以就规定了我们讨论的范围。为什么要写篇文章呢,是因为我前一阵子被ioctl给搞混
了,这几天才弄明白他,于是在这里清理一下头脑。
一、 什么是ioctl。
ioctl是设备驱动程式中对设备的I/O通道进行管理的函数。所谓对I/O通道进行管理,就
是对设备的一些特性进行控制,例如串口的传输波特率、马达的转速等等。他的调用个数
如下:
int ioctl(int fd, ind cmd, …);
其中fd就是用户程式打开设备时使用open函数返回的文件标示符,cmd就是用户程式对设
备的控制命令,至于后面的省略号,那是一些补充参数,一般最多一个,有或没有是和
cmd的意义相关的。
ioctl函数是文件结构中的一个属性分量,就是说如果你的驱动程式提供了对ioctl的支
持,用户就能在用户程式中使用ioctl函数控制设备的I/O通道。
二、 ioctl的必要性
如果不用ioctl的话,也能实现对设备I/O通道的控制,但那就是蛮拧了。例如,我们可
以在驱动程式中实现write的时候检查一下是否有特别约定的数据流通过,如果有的话,
那么后面就跟着控制命令(一般在socket编程中常常这样做)。不过如果这样做的话,会
导致代码分工不明,程式结构混乱,程式员自己也会头昏眼花的。
所以,我们就使用ioctl来实现控制的功能。要记住,用户程式所作的只是通过命令码告
诉驱动程式他想做什么,至于怎么解释这些命令和怎么实现这些命令,这都是驱动程式要
做的事情。
三、 ioctl怎么实现
这是个非常麻烦的问题,我是能省则省。要说清晰他,没有四五千字是不行的,所以我这
相关文档:
xp下从硬盘安装Linux,包括redflag6 RedHat9 fc4都类似(都不新!),但是安装过程绝对详细!
1。首先是准备条件
(1) 腾出地方:xp下要有地方放Linux的镜像(.iso),而且所在磁盘要为fat32格式,可以用norton partitionmagic(很不错的工具,网上很多下载!)将磁盘格式转换 不过因为软 ......
Linux安装JDK步骤1. 先从网上下载jdk(jdk-1_5_0_02-linux-i586.rpm) ,推荐SUN的官方网站www.sun.com,下载后放在/home目录中,当然其它地方也行。
进入安装目录
#cd /home
#cp jdk-1_5_0_02-linux-i586.rpm /usr/local
#cd /usr/local
给所有用户添加可执行的权限
#chmod +x jdk-1_5_0_02-linux-i586.rpm.bin
#./jd ......
[root@localhost root]# ls -l
会显示目录或文件信息:drwxr-xr-x 2 root root 4096 06-29 14:30 Test
-rwxr--r-- 2 root roo ......
Linux常用命令参考
1. diff
用于文件比较。一般file1是原文件,file2是新(修改过)的文件。
紧凑模式:diff -u file1 file2
diff -u file1 file2
--- file1 2010-03-06 02:11:43.000000000 +0000
+++ file2 2010-04-14 10:06:45.000000000 +0000
@@ -21,11 +21,9 @@
eeeeee
ffffff
2222 ......
作者:韦东山,
华清远见嵌入式学院
讲师。
随着嵌
入式行业硬件平台的性能增强,项目需求和功能日益复杂,ARM公司推出的
CORTEX-M3,更是让以往做单片机的工程师在芯片和技术选型面临两难选择,本专题将从芯片价格、整个系统的硬件软件设计及维护的成本等各个方面给您
提供一个参考, 并从技术角度分析单片机和带操 ......