TERMIOS.3
资源名称:os_source.zip [点击查看]
上传用户:datang2001
上传日期:2007-02-01
资源大小:53269k
文件大小:5k
源码类别:
操作系统开发
开发平台:
C/C++
- TERMIOS(3) Minix Programmer's Manual TERMIOS(3)
- NAME
- termios, tcgetattr, tcsetattr, cfgetispeed, cfgetospeed, cfsetispeed,
- cfsetospeed, tcsendbreak, tcdrain, tcflush, tcflow - change terminal
- attributes
- SYNOPSIS
- #include <termios.h>
- int tcgetattr(int fd, struct termios *tp)
- int tcsetattr(int fd, int action, const struct termios *tp)
- speed_t cfgetispeed(const struct termios *tp)
- speed_t cfgetospeed(const struct termios *tp)
- int cfsetispeed(struct termios *tp, speed_t speed)
- int cfsetospeed(struct termios *tp, speed_t speed)
- int tcsendbreak(int fd, int duration)
- int tcdrain(int fd)
- int tcflush(int fd, int queue_selector)
- int tcflow(int fd, int action)
- DESCRIPTION
- These are the user functions that modify the tty attributes mentioned in
- tty(4). In the following, fd refers to an open terminal device file, tp
- is the address of a struct termios, and speed and values of type speed_t
- are equal to one of the B0, B50, etc. baud rate symbols. All functions,
- symbols, and types are declared in <termios.h>.
- The effects of the tty functions are:
- tcgetattr(fd, tp)
- Get the current settings of the tty attributes.
- tcsetattr(fd, TCSANOW, tp)
- Set the terminal attributes. The change occurs immediately.
- tcsetattr(fd, TCSADRAIN, tp)
- Set the terminal attributes. The change occurs once all the output
- waiting in the output queues has been transmitted. This should be
- used when options affecting output are changed.
- tcsetattr(fd, TCSAFLUSH, tp)
- Set the terminal attributes. But first wait until all the output
- waiting in the output queues has been transmitted. All input
- waiting in the input queues is then discarded and the change is
- made. This should be used when switching from canonical to non-
- canonical mode or vice-versa. (Oddly enough, this is seldom what
- you want, because it discards typeahead. An editing shell does the
- Right Thing if it uses TCSANOW instead. POSIX may not guarantee
- good results, but in practice most systems make the canonical input
- 1
- TERMIOS(3) Minix Programmer's Manual TERMIOS(3)
- available in raw mode.)
- cfgetispeed(tp)
- Return the input baud rate encoded in the termios structure.
- cfgetospeed(tp)
- Return the output baud rate encoded in the termios structure.
- cfsetispeed(tp, speed)
- Encode the new input baud rate into the termios structure.
- cfsetospeed(tp, speed)
- Encode the new output baud rate into the termios structure.
- tcsendbreak(fd, duration)
- Emit a break condition on a serial line for a time indicated by
- duration. (Always 0.4 seconds under Minix, duration is ignored.)
- tcdrain(fd)
- Wait until all output waiting in the output queues has been
- transmitted.
- tcflush(fd, TCIFLUSH)
- Flush the input queue. (I.e. discard it.)
- tcflush(fd, TCOFLUSH)
- Flush the output queue.
- tcflush(fd, TCIOFLUSH)
- Flush the input and output queues.
- tcflow(fd, TCOOFF)
- Suspend output. (Like the effect of STOP.)
- tcflow(fd, TCOON)
- Restart output. (Like the effect of START.)
- tcflow(fd, TCIOFF)
- Transmit a STOP character intended to make the remote device stop
- transmitting data.
- tcflow(fd, TCION)
- Transmit a START character to restart the remote device.
- SEE ALSO
- stty(1), tty(4).
- 2
- TERMIOS(3) Minix Programmer's Manual TERMIOS(3)
- DIAGNOSTICS
- All functions return 0 unless otherwise specified, and -1 on error with
- errno set to indicate the type of error. The most notable errors are
- ENOTTY if fd does not refer to a terminal device, and EINTR if one of the
- functions waiting for output to drain is interrupted.
- NOTES
- It may be interesting to know that the functions operating on the tty are
- directly translated into the following Minix ioctl requests: TCGETS,
- TCSETS (now), TCSETSW (drain), TCSETSF, (flush), TCSBRK, TCDRAIN, TCFLSH,
- and TCFLOW. You should only use this knowledge when trying to understand
- the tty driver code, of course.
- BUGS
- AUTHOR
- Kees J. Bot (kjb@cs.vu.nl)
- 3