终端I/O函数 ioctl

ioctl 函数一直是 I/O 操作的杂物箱,不能用其它 I/O 函数进行的操作通常都能使用它表示。终端 I/O 就是使用 ioctl 函数最多的地方,可以用它来获取和设置终端窗口的大小等(POSIX.1 已经用一些单独的函数代替了终端 I/O 操作)。

#include <unistd.h> /* System V */
#include <sys/ioctl.h> /* BSD and Linux */

int ioctl(int fd, int request, ...);
/* 返回值:若出错,返回 -1;否则,返回其他值 */

在此原型中,表示的只是 ioctl 函数本身所要求的头文件。通常,还要求另外的设备专用头文件。例如,除 POSIX.1 所说明的基本操作之外,终端 I/O 的 ioctl 命令都需要头文件<termios.h>。此外,虽然这里使用省略号来表示其余参数,但通常只有另外一个参数,它一般是指向一个变量或结构的指针。
每个设备驱动程序都可以定义它自己专用的一组 ioctl 命令,系统则为不同种类的设备提供通用的 ioctl 命令。下图总结了 FreeBSD 支持的通用 ioctl 命令的一些类别。
[img]http://dl2.iteye.com/upload/attachment/0129/9917/a4d371bd-c2d9-3427-8ec7-f7bd5e65f630.png[/img]
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值