TERMIOS.3
上传用户:datang2001
上传日期:2007-02-01
资源大小:53269k
文件大小:4k
源码类别:

操作系统开发

开发平台:

C/C++

  1. .TH TERMIOS 3
  2. .SH NAME
  3. termios, tcgetattr, tcsetattr, cfgetispeed, cfgetospeed, cfsetispeed, cfsetospeed, tcsendbreak, tcdrain, tcflush, tcflow - change terminal attributes
  4. .SH SYNOPSIS
  5. .ft B
  6. .nf
  7. #include <termios.h>
  8. int tcgetattr(int fIfdfP, struct termios *fItpfP)
  9. int tcsetattr(int fIfdfP, int fIactionfP, const struct termios *fItpfP)
  10. speed_t cfgetispeed(const struct termios *fItpfP)
  11. speed_t cfgetospeed(const struct termios *fItpfP)
  12. int cfsetispeed(struct termios *fItpfP, speed_t fIspeedfP)
  13. int cfsetospeed(struct termios *fItpfP, speed_t fIspeedfP)
  14. int tcsendbreak(int fIfdfP, int fIdurationfP)
  15. int tcdrain(int fIfdfP)
  16. int tcflush(int fIfdfP, int fIqueue_selectorfP)
  17. int tcflow(int fIfdfP, int fIactionfP)
  18. .fi
  19. .ft P
  20. .SH DESCRIPTION
  21. .de SP
  22. .if t .sp 0.4
  23. .if n .sp
  24. ..
  25. These are the user functions that modify the tty attributes mentioned in
  26. .BR tty (4).
  27. In the following,
  28. .I fd
  29. refers to an open terminal device file,
  30. .I tp
  31. is the address of a
  32. .BR "struct termios" ,
  33. and
  34. .I speed
  35. and values of type
  36. .B speed_t
  37. are equal to one of the
  38. .BR B0 ,
  39. .BR B50 ,
  40. etc. baud rate symbols.  All functions, symbols, and types are declared in
  41. .BR <termios.h> .
  42. .PP
  43. The effects of the tty functions are:
  44. .TP
  45. .B tcgetattr(fIfdfP, fItpfP)
  46. Get the current settings of the tty attributes.
  47. .TP
  48. .B tcsetattr(fIfdfP, TCSANOW, fItpfP)
  49. Set the terminal attributes.  The change occurs immediately.
  50. .TP
  51. .B tcsetattr(fIfdfP, TCSADRAIN, fItpfP)
  52. Set the terminal attributes.  The change occurs once all the output waiting
  53. in the output queues has been transmitted.  This should be used when options
  54. affecting output are changed.
  55. .TP
  56. .B tcsetattr(fIfdfP, TCSAFLUSH, fItpfP)
  57. Set the terminal attributes.  But first wait until all the output waiting
  58. in the output queues has been transmitted.  All input waiting in the input
  59. queues is then discarded and the change is made.  This should be used when
  60. switching from canonical to non-canonical mode or vice-versa.  (Oddly
  61. enough, this is seldom what you want, because it discards typeahead.  An
  62. editing shell does the Right Thing if it uses
  63. .B TCSANOW
  64. instead.  s-2POSIXs+2 may not guarantee good results, but in practice most
  65. systems make the canonical input available in raw mode.)
  66. .TP
  67. .B cfgetispeed(fItpfP)
  68. Return the input baud rate encoded in the termios structure.
  69. .TP
  70. .B cfgetospeed(fItpfP)
  71. Return the output baud rate encoded in the termios structure.
  72. .TP
  73. .B cfsetispeed(fItpfP, fIspeedfP)
  74. Encode the new input baud rate into the termios structure.
  75. .TP
  76. .B cfsetospeed(fItpfP, fIspeedfP)
  77. Encode the new output baud rate into the termios structure.
  78. .TP
  79. .B tcsendbreak(fIfdfP, fIdurationfP)
  80. Emit a break condition on a serial line for a time indicated by
  81. .IR duration .
  82. (Always 0.4 seconds under Minix,
  83. .I duration
  84. is ignored.)
  85. .TP
  86. .B tcdrain(fIfdfP)
  87. Wait until all output waiting in the output queues has been transmitted.
  88. .TP
  89. .B tcflush(fIfdfP, TCIFLUSH)
  90. Flush the input queue.  (I.e. discard it.)
  91. .TP
  92. .B tcflush(fIfdfP, TCOFLUSH)
  93. Flush the output queue.
  94. .TP
  95. .B tcflush(fIfdfP, TCIOFLUSH)
  96. Flush the input and output queues.
  97. .TP
  98. .B tcflow(fIfdfP, TCOOFF)
  99. Suspend output.  (Like the effect of
  100. .BR STOP .)
  101. .TP
  102. .B tcflow(fIfdfP, TCOON)
  103. Restart output.  (Like the effect of
  104. .BR START .)
  105. .TP
  106. .B tcflow(fIfdfP, TCIOFF)
  107. Transmit a
  108. .B STOP
  109. character intended to make the remote device stop transmitting data.
  110. .TP
  111. .B tcflow(fIfdfP, TCION)
  112. Transmit a
  113. .B START
  114. character to restart the remote device.
  115. .SH "SEE ALSO"
  116. .BR stty (1),
  117. .BR tty (4).
  118. .SH DIAGNOSTICS
  119. All functions return 0 unless otherwise specified, and -1 on error with
  120. .B errno
  121. set to indicate the type of error.  The most notable errors are
  122. .B ENOTTY
  123. if
  124. .I fd
  125. does not refer to a terminal device, and
  126. .B EINTR
  127. if one of the functions waiting for output to drain is interrupted.
  128. .SH NOTES
  129. It may be interesting to know that the functions operating on the tty are
  130. directly translated into the following Minix
  131. .B ioctl
  132. requests:
  133. .BR TCGETS ,
  134. .BR TCSETS
  135. (now),
  136. .BR TCSETSW
  137. (drain),
  138. .BR TCSETSF ,
  139. (flush),
  140. .BR TCSBRK ,
  141. .BR TCDRAIN ,
  142. .BR TCFLSH ,
  143. and
  144. .BR TCFLOW .
  145. You should only use this knowledge when trying to understand the tty driver
  146. code, of course.
  147. .SH BUGS
  148. .SH AUTHOR
  149. Kees J. Bot (kjb@cs.vu.nl)