- 浏览: 142459 次
文章分类
最新评论
ioctl 函数一直是 I/O 操作的杂物箱,不能用其它 I/O 函数进行的操作通常都能使用它表示。终端 I/O 就是使用 ioctl 函数最多的地方,可以用它来获取和设置终端窗口的大小等(POSIX.1 已经用一些单独的函数代替了终端 I/O 操作)。
在此原型中,表示的只是 ioctl 函数本身所要求的头文件。通常,还要求另外的设备专用头文件。例如,除 POSIX.1 所说明的基本操作之外,终端 I/O 的 ioctl 命令都需要头文件<termios.h>。此外,虽然这里使用省略号来表示其余参数,但通常只有另外一个参数,它一般是指向一个变量或结构的指针。
每个设备驱动程序都可以定义它自己专用的一组 ioctl 命令,系统则为不同种类的设备提供通用的 ioctl 命令。下图总结了 FreeBSD 支持的通用 ioctl 命令的一些类别。
#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 命令的一些类别。
发表评论
-
打开伪终端设备
2018-07-09 20:50 1252在伪终端概述一节中已对 PTY进行了初步的介绍。尽管 ... -
伪终端概述
2018-06-02 11:05 1550伪终端就是指,一个应用程序看上去像一个终端,但事实上它 ... -
终端窗口大小和 termcap
2018-05-29 22:39 800多数 UNIX 系统都提供了一种跟踪当前终端窗口大小的 ... -
终端规范模式和非规范模式
2018-05-29 00:25 950终端规范模式很简单:发一个读请求,当一行已经输入后,终 ... -
终端标识
2018-05-23 11:18 569尽管控制终端的名字在多数 UNIX 系统上都是 /de ... -
波特率和行控制函数
2018-05-22 07:53 944虽然大多数终端设 ... -
终端属性和选项标志
2018-05-20 07:40 710tcgetattr 和 tcsetattr ... -
终端特殊输入字符
2018-05-17 06:33 815终端支持下表所示的特殊输入字符。 为了更改 ... -
终端 I/O 综述
2018-05-10 07:56 439终端设备可认为是由内核中的终端驱动程序控制的。每个终端 ... -
POSIX 信号量
2018-05-09 00:03 579在XSI IPC通信之信 ... -
XSI IPC 通信之共享存储
2018-04-25 07:18 947在XSI IPC通信之消息队列和XSI IPC通信之信 ... -
XSI IPC通信之信号量
2018-04-17 23:38 617在XSI IPC通信之消 ... -
XSI IPC通信之消息队列
2018-04-15 10:54 497消息队列是消息的链接表,存储在内核中,由消息队列标识符 ... -
XSI IPC 相似特征介绍
2018-02-08 23:48 485有 3 种称作 XSI IPC ... -
IPC 通信之 FIFO
2018-02-06 22:55 421FIFO 也被称为命名管道,未命名的管道只能在两个相关 ... -
IPC 通信之管道
2018-01-30 22:22 389管道是 UNIX 系统 IPC 的最古老但也是最常用的 ... -
readv/writev 函数及存储映射 I/O
2018-01-19 00:57 889readv 和 writev 函数可用于在一次函数调用 ... -
POSIX 异步 I/O
2018-01-16 21:33 455POSIX 异步 I/O 接口为对不同类型的文件进行异 ... -
fcntl 记录锁
2018-01-06 23:48 615记录锁的功能是:当有进程正在读或修改文件的某个部分时, ... -
守护进程惯例
2018-01-06 23:52 439UNIX 系统中,守护进程遵循下列通用惯例。 ...
相关推荐
这些函数构成了不带缓存的I/O(unbuffered I/O),即每次读写操作都会直接调用内核的系统调用,确保数据的实时传输。不带缓存的I/O不是ANSI C标准的一部分,但属于POSIX.1和XPG3标准,因此在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 规范模式...
- **综述**:终端I/O的基本概念。 - **特殊输入字符**:如EOF、INTR等。 - **获得和设置终端属性**:tcgetattr/tcsetattr函数。 - **终端选择标志**:设置终端的工作模式。 - **stty命令**:配置终端属性。 - **波特...
6. **其他相关函数**:除了上述的基本文件I/O函数,还有dup用于复制一个文件描述符,fcntl用于获取和设置文件描述符的属性,以及ioctl用于设备控制。 掌握这些基础知识对学习UNIX编程至关重要,它们构成了与文件...
全书共9章,内容包括:基本概念、基本文件I/O、高级文件I/0、终端I/O、进程与线程、基本进程间通信、高级进程间通信、网络技术与套接字,以及信号与定时器等。涉及POSIX、FreeBSD、Solaris、Linux等几大主流系统...
不带缓存的I/O函数并非ANSI C标准的一部分,但它们是POSIX.1和XPG3标准的一部分,因此在Unix环境中广泛使用。 原子操作在多进程共享资源时至关重要,特别是在文件I/O中。例如,如果多个进程试图同时打开或修改同一...
第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 终端的...
第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...
第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...
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 行控制...
- **FIONBIO/FIOASYNC**:用于控制套接口的非阻塞I/O标志或信号驱动异步I/O标志。 - **FIONREAD**:查询套接口接收缓冲区中的字节数,对文件、管道和终端也适用。 - **FIOSETOWN/FIOGETOWN**:设置或获取文件的进程...
第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...
第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 ...
第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 ...
第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...
第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 终端标识 ...
第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...
第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...
第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...