`

终端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 命令的一些类别。

  • 大小: 7.5 KB
分享到:
评论

相关推荐

    APUE(UNIX环境高级编程)——文件I/O篇

    这些函数构成了不带缓存的I/O(unbuffered I/O),即每次读写操作都会直接调用内核的系统调用,确保数据的实时传输。不带缓存的I/O不是ANSI C标准的一部分,但属于POSIX.1和XPG3标准,因此在UNIX和类UNIX系统中广泛...

    UNIX环境高级编程_第二版中文

    第18章 终端I/O  18.1 引言  18.2 综述  18.3 特殊输入字符  18.4 获得和设置终端属性  18.5 终端选项标志  18.6 stty命令  18.7 波特率函数  18.8 行控制函数  18.9 终端标识  18.10 规范模式...

    UNIX环境高级编程部分

    - **综述**:终端I/O的基本概念。 - **特殊输入字符**:如EOF、INTR等。 - **获得和设置终端属性**:tcgetattr/tcsetattr函数。 - **终端选择标志**:设置终端的工作模式。 - **stty命令**:配置终端属性。 - **波特...

    UNIX环境高级编程003

    6. **其他相关函数**:除了上述的基本文件I/O函数,还有dup用于复制一个文件描述符,fcntl用于获取和设置文件描述符的属性,以及ioctl用于设备控制。 掌握这些基础知识对学习UNIX编程至关重要,它们构成了与文件...

    高级UNIX编程 pdf 电子书

    全书共9章,内容包括:基本概念、基本文件I/O、高级文件I/0、终端I/O、进程与线程、基本进程间通信、高级进程间通信、网络技术与套接字,以及信号与定时器等。涉及POSIX、FreeBSD、Solaris、Linux等几大主流系统...

    Unix环境高级编程3

    不带缓存的I/O函数并非ANSI C标准的一部分,但它们是POSIX.1和XPG3标准的一部分,因此在Unix环境中广泛使用。 原子操作在多进程共享资源时至关重要,特别是在文件I/O中。例如,如果多个进程试图同时打开或修改同一...

    UNIX环境高级编程

    第11章 终端I/O 11.1 引言 11.2 综述 11.3 特殊输入字符 11.4 获得和设置终端属性 11.5 终端选择标志 11.6 stty命令 11.7 波特率函数 11.8 行控制函数 11.9 终端标识 11.10 规范方式 11.11 非规范方式 11.12 终端的...

    UNIX环境高级编程 pdf格式

    第11章 终端I/O 246 11.1 引言 246 11.2 综述 246 11.3 特殊输入字符 250 11.4 获得和设置终端属性 254 11.5 终端选择标志 254 11.6 stty命令 258 11.7 波特率函数 259 11.8 行控制函数 260 11.9 终端标识 260 11.10...

    UNIX环境高级编程(第二版中文)

    第18章 终端I/O 507 18.1 引言 507 18.2 综述 507 18.3 特殊输入字符 512 18.4 获得和设置终端属性 516 18.5 终端选项标志 516 18.6 stty命令 522 18.7 波特率函数 523 18.8 行控制函数 524 18.9...

    unix环境编程电子书

    505 习题 505 第18章 终端I/O 507 18.1 引言 507 18.2 综述 507 18.3 特殊输入字符 512 18.4 获得和设置终端属性 516 18.5 终端选项标志 516 18.6 stty命令 522 18.7 波特率函数 523 18.8 行控制...

    Linux中ioctl操作

    - **FIONBIO/FIOASYNC**:用于控制套接口的非阻塞I/O标志或信号驱动异步I/O标志。 - **FIONREAD**:查询套接口接收缓冲区中的字节数,对文件、管道和终端也适用。 - **FIOSETOWN/FIOGETOWN**:设置或获取文件的进程...

    IT行业中必备技能之UNIX最佳学习资料

    第11章 终端I/O 246 11.1 引言 246 11.2 综述 246 11.3 特殊输入字符 250 11.4 获得和设置终端属性 254 11.5 终端选择标志 254 11.6 stty命令 258 11.7 波特率函数 259 11.8 行控制函数 260 11.9 终端标识 260 11.10...

    UNIX环境高级编程_第2版.part1

    第18章终端i/o507 18.1 引言507 18.2 综述507 18.3 特殊输入字符512 18.4 获得和设置终端属性516 18.5 终端选项标志516 18.6 stty命令522 18.7 波特率函数523 18.8 行控制函数524 18.9 终端标识524 18.10 ...

    UNIX环境高级编程_第2版.part2

    第18章终端i/o507 18.1 引言507 18.2 综述507 18.3 特殊输入字符512 18.4 获得和设置终端属性516 18.5 终端选项标志516 18.6 stty命令522 18.7 波特率函数523 18.8 行控制函数524 18.9 终端标识524 18.10 ...

    UNIX环境高级编程(PDF)

    第11章 终端I/O 246 11.1 引言 246 11.2 综述 246 11.3 特殊输入字符 250 11.4 获得和设置终端属性 254 11.5 终端选择标志 254 11.6 stty命令 258 11.7 波特率函数 259 11.8 行控制函数 260 11.9 终端标识 260 11.10...

    Unix高级编程 pdf

    第11章 终端I/O 246 11.1 引言 246 11.2 综述 246 11.3 特殊输入字符 250 11.4 获得和设置终端属性 254 11.5 终端选择标志 254 11.6 stty命令 258 11.7 波特率函数 259 11.8 行控制函数 260 11.9 终端标识 ...

    UNIX环境高级编程和源代码

    第11章 终端I/O 246 11.1 引言 246 11.2 综述 246 11.3 特殊输入字符 250 11.4 获得和设置终端属性 254 11.5 终端选择标志 254 11.6 stty命令 258 11.7 波特率函数 259 11.8 行控制函数 260 11.9 终端标识 260 11.10...

    UNIX环境高级编程(中文版+英文版+源代码)

    第11章 终端I/O 246 11.1 引言 246 11.2 综述 246 11.3 特殊输入字符 250 11.4 获得和设置终端属性 254 11.5 终端选择标志 254 11.6 stty命令 258 11.7 波特率函数 259 11.8 行控制函数 260 11.9 终端标识 260 11.10...

    UNIX环境高级编程.pdf

    第11章 终端I/O 246 11.1 引言 246 11.2 综述 246 11.3 特殊输入字符 250 11.4 获得和设置终端属性 254 11.5 终端选择标志 254 11.6 stty命令 258 11.7 波特率函数 259 11.8 行控制函数 260 11.9 终端标识 260 11.10...

Global site tag (gtag.js) - Google Analytics