ioctl函數是I/O操作的雜物箱。不能用其他函數表示的I/O操作通常都能用ioctl表示。終端I/O是ioctl的最大使用方面。
ioctl函數通過對文件描述符發送特定的命令來控制文件描述符所代表的設備。
#include <unistd.h> /* System V */ #include <sys/ioctl.h> /* BSD and Linux */ #include <stropts.h> /* XSI STREAMS */ int ioctl( int filedes, int request, ... ); 返回值:若出錯則返回-1,若成功則返回其他值
對於ISO C原型,它用省略號表示其余參數。但是,通常只有另外一個參數,它常常是指向一個變量或結構的指針。
在此原型中,我們表示的只是ioctl函數本身所要求的頭文件。通常,還要求另外的設備專用頭文件。例如,除POSIX.1所說明的基本操作之外,終端I/O的ioctl命令都需要頭文件<termios.h>
每個設備驅動程序都可以定義它自己專用的一組ioctl命令。系統則為不同種類的設備提供通用的ioctl命令。
本篇博文內容摘自《UNIX環境高級編程》(第二版),僅作個人學習記錄所用。關於本書可參考:http://www.apuebook.com/。
