next up previous contents
下一页: 9.1 鼠标编程 上一级: e 前一页: 8.23 [N]Curses 函数概述

9 编程 I/O 端口

通常,一台 PC 至少有 2 个串行接口和 1 个并行接口。这些接口是特殊设备,映射如下

/dev/ttyS* 和 /dev/cua* 设备之间的区别在于如何处理对 open() 的调用。/dev/cua* 设备应该用作呼叫设备,因此通过调用 open() 获得与其他默认设置不同的设置,而 /dev/ttyS* 设备将被初始化为用于传入和传出呼叫。 默认情况下,这些设备是打开它们的进程的控制设备。 通常 ioctl() 请求应处理所有这些特殊设备,但 POSIX 倾向于定义新函数来处理严重依赖 struct termios 的异步终端。 两种方法都需要包含 <termios.h>。

  1. ioctl 方法
    TCSBRK, TCSBRKP, TCGETA (获取属性), TCSETA (设置属性)
    终端 I/O 控制 (TIOC) 请求
    TIOCGSOFTCAR (设置软载波), TIOCSSOFTCAR (获取软载波), TIOCSCTTY (设置控制 tty), TIOCMGET (获取调制解调器线), TIOCMSET (设置调制解调器线), TIOCGSERIAL, TIOCSSERIAL, TIOCSERCONFIG, TIOCSERGWILD, TIOCSERSWILD, TIOCSERGSTRUCT, TIOCMBIS, TIOCMBIC, ...
  2. POSIX 方法
    tcgetattr(), tcsetattr(), tcsendbreak(), tcdrain(), tcflush(), tcflow(), tcgetpgrp(), tcsetpgrp()
    cfsetispeed(), cfgetispeed(), cfsetospeed(), cfgetospeed()
  3. 其他方法
    outb,inb 用于硬件近编程,例如使用打印机端口而不是打印机。





转换于
1996 年 3 月 29 日星期五 14:43:04 EST