̾??
cfgetispeed
,
cfsetispeed
, cfgetospeed
,
cfsetospeed
, cfsetspeed
,
cfmakeraw
, tcgetattr
,
tcsetattr
— termios
??¤??????
Standard C Library (libc, -lc)
<termios.h>
speed_t
cfgetispeed
(const
struct termios *t) int
cfsetispeed
(struct termios *t,
speed_t speed) speed_t
cfgetospeed
(const struct termios
*t) int
cfsetospeed
(struct termios *t,
speed_t speed) int
cfsetspeed
(struct termios *t,
speed_t speed) void
cfmakeraw
(struct termios *t)
int
tcgetattr
(int fd,
struct termios *t) int
tcsetattr
(int fd,
int action, const struct termios
*t)
cfmakeraw
(),
tcgetattr
() ??????
tcsetattr
() ?ؿ??ϡ?termios
??¤?μ????????????????Ԥ??????Τ??ΤǤ???
cfgetispeed
(),
cfsetispeed
(),
cfgetospeed
(), cfsetospeed
()
?????? cfsetspeed
() ?ؿ??ϡ?termios
??¤?ˤ??????ܡ??졼?Ȥμ???????????????
?Ԥ??????Τ??ΤǤ????ʲ??˽Ҥ٤?ü?????Ф????ؿ??θ??̤ϡ?
tcsetattr
()
?ؿ????ƤӽФ??????ޤǤ?ͭ???ˤϤʤ餺?????٤ƥ??顼?????Ф????ޤ???
tcsetattr
()
?ؿ????Ϥ??????ܡ??졼?Ȥ????????ͤϡ?termios
??¤?????ꤵ?졢
???̤ʰ?̣???????ޤ????????ˤĤ??Ƥϡ?
tcsetattr
()
?ؿ??????????Ƥ????ޥ˥奢???ڡ????˽Ҥ٤ޤ???
???Ϥ????ӽ??ϤΥܡ??졼?Ȥϡ?termios
??¤?????äƤ??ޤ????????ʤ???????
speed_t
?ϡ????롼?ɥե?????
⟨termios.h⟩ ?????? typedef
?????Ƥ??ޤ??????????????????????ͤϡ????줬?????ܡ??졼?Ȥ?
ľ???б????Ƥ??ꡢ???Τ褦?ʵ??????ͤ??????????Ƥ??ޤ???
#define B0 0
#define B50 50
#define B75 75
#define B110 110
#define B134 134
#define B150 150
#define B200 200
#define B300 300
#define B600 600
#define B1200 1200
#define B1800 1800
#define B2400 2400
#define B4800 4800
#define B9600 9600
#define B19200 19200
#define B38400 38400
#ifndef _POSIX_SOURCE
#define EXTA 19200
#define EXTB 38400
#endif /*_POSIX_SOURCE */
cfgetispeed
()
?ؿ??ϡ? tp ?ǻ??Ȥ?????
termios
??¤?ˤ????????ϥܡ??졼?Ȥ??֤??ޤ???
cfsetispeed
()
?ؿ??ϡ? tp ?ǻ??Ȥ?????
termios ??¤?ˤ????????ϥܡ??졼?Ȥ?
speed ???ͤ????ꤷ?ޤ???
cfgetospeed
()
?ؿ??ϡ? tp ?ǻ??Ȥ?????
termios
??¤?ˤ????????ϥܡ??졼?Ȥ??֤??ޤ???
cfsetospeed
()
?ؿ??ϡ? tp ?ǻ??Ȥ?????
termios ??¤?ˤ????????ϥܡ??졼?Ȥ?
speed ???ͤ????ꤷ?ޤ???
cfsetspeed
()
?ؿ??ϡ? tp ?ǻ??Ȥ?????
termios
??¤?ˤ????????Ϥ????ӽ??ϥܡ??졼?Ȥ?ξ????
speed ???ͤ????ꤷ?ޤ???
???????????????ȡ?
cfsetispeed
(),
cfsetospeed
() ??????
cfsetspeed
() ???? 0
???֤??ޤ????????ʳ??ξ????? -1
?Ȥ????ͤ??֤??졢???顼??
???????Х??ѿ? errno
?????ꤵ???ޤ???
???Υ??????????Ǥϡ?????ü?????ե??????????椹?뤿?????Ѥ???
?ؿ??ˤĤ??????????ޤ????????Υ??ޥ??ɤˤĤ????ä??Ǥ????ʤ??¤ꡢ
???????δؿ??ϥХå????饦???ɽ????ˤ??????Ѥ??Ф??Ƥ????¤??????ޤ???
???Τ褦?????????Ԥʤ????Ȥ????ȡ????ν??????롼?פˤ?
SIGTTOU ?????ʥ뤬
???????ޤ????ƤӽФ?¦?????? SIGTTOU
?????ʥ????֥??å??ޤ???̵?뤷???????ϡ?
???ν????????????¹Ԥ??뤳?Ȥ??????졢
SIGTTOU ?????ʥ????????????ޤ?????
fd
?ϳ????ե??????ε??һҤǤ????????٤Ƥδؿ??ˤ????Ƥϡ??ؿ??Ϥ??줬
?????????Υե????뵭?һҤ˴ؤ??Ƴ??????ե??????????Ƥ????Ǥʤ???????Ū??
??Ϣ????ü???ե??????ˤ??ƶ????ڤܤ??ޤ???
cfmakeraw
()
?ؿ??ϡ?termios
??¤????¸???줿?ե饰?٤Ƥ????Ϥ?????
???Ͻ?????̵???ˤ??????֤????ꤷ?? “????
I/O ?ѥ?” ??Ϳ???ޤ??????θ??̤?
??ž???????ؿ???¸?ߤ??ʤ????Ȥ????դ??Ƥ??????????????ϡ?ͭ????
?᤹???Ȥ??Ǥ??????????ץ??????????????ꡢ????????ˡ??
tcgetattr
() ?ؿ????Ȥ????ޤ?
cfmakeraw
() ?ؿ??Ǽ???
tcsetattr
()
?ؿ??ˤ??ä????⡼?ɤ????ꤷ?????ˤ⤦????
tcsetattr
()
?ؿ?????¸???֤ǻȤäƸ???ü?????֤??ᤷ??
???ߤ?ü?????֤Υ??ʥåץ????åȤ?Ŭ?Ѥ????????????????Ǥ???
tcgetattr
()
?ؿ??ϡ? tp ?ǻ??Ȥ?????
termios ??¤?????äƤ??? fd
?ˤ??äƻ??Ȥ?????ü?????տ魯???ѥ?????ԡ????ޤ??????δؿ??ϡ?
?Хå????饦???ɽ????????Ȥ????Ȥ????????Ƥ??ޤ?????ü?????ȥ??ӥ塼??
?Ϥ??θ??˥ե??????饦???ɽ????ˤ??ä??ѹ??????????礬?????ޤ???
tcsetattr
()
?ؿ??ϡ? tp
?ˤ??äƻ??Ȥ????? termios
??¤??ü?????տ魯???ѥ?????????ꤷ?ޤ???
action
?ե??????ɤϡ????롼?ɥե?????
⟨termios.h⟩
?????ǻ??ꤵ?줿?̤??ˡ??ʲ????ͤ?
or
????뤳?Ȥˤ??ä? ?????????ޤ???
- TCSANOW
- ?ѹ???ľ???˹Ԥ????ޤ???
- TCSADRAIN
- ?ѹ??ϡ? fd
?˽????ޤ줿???٤Ƥν??Ϥ?ü???????????줿????
?Ԥ????ޤ??????Ϥ˱ƶ???Ϳ?????ѥ???????ѹ??????????ˤϡ?????
action
?ͤ??Ȥ??ʤ????Фʤ??ޤ?????
- TCSAFLUSH
- ?ѹ??ϡ? fd
?˽????ޤ줿???٤Ƥν??Ϥ?ü???????????줿????
?Ԥ????ޤ??????ξ塢???????줿???ޤ??ɤ??????Ƥ??ʤ????٤Ƥ????Ϥ?
?Ѵ??????ޤ???
- TCSASOFT
- ?????ͤ? action ?ͤ?
???? ????줿?????ϡ?
c_cflag,
c_ispeed
??????
c_ospeed
?ե??????ɤ??ͤ?̵?뤵???ޤ???
?ܡ??졼???? 0
?ϡ???³????λ???뤿???˻Ȥ??ޤ???
tcsetattr
()
?ؿ??˽???®?? 0
?????ꤹ???ȡ?ü?????Ф??ƥ??ǥ?????????ĥ?????ˡ?
ü??????³???ڤ??ޤ???
?ؿ?
tcsetattr
()
??????®?? 0
?????ꤷ???????ϡ????ϥܡ??졼?ȤϽ???
?ܡ??졼?Ȥ˻??ꤵ?줿???Τ?Ʊ???ͤ????ꤵ???ޤ???
?ؿ?
tcsetattr
()
???ᤷ???ѹ??Τ??????????Ԥ????Ȥ??Ǥ??ʤ??????ϡ???
-1 ???֤??? errno
?????ꤷ?ޤ????????ʳ??ξ????ϡ??ᤵ?줿?ѹ????٤Ƥ?
??ǽ?ʸ¤??Ԥ??ޤ??????ꤷ?????Ϥ????ӽ??ϤΥܡ??졼?Ȥ??ۤʤꡢ????
?ȹ礻?????ݡ??Ȥ????Ƥ??ʤ??????ˤϡ??ɤ????Υܡ??졼?Ȥ??ѹ??????ޤ?????
?????????????ƴ?λ?????ȡ??ؿ?
tcgetattr
()
?????? tcsetattr
() ???? 0
???֤??ޤ????????ʳ??ξ????ϡ??? -1
???֤??ƥ??顼?????????Х??ѿ?
errno
?????Τ褦?????ꤵ???ޤ???
- [
EBADF
]
- ?ؿ?
tcgetattr
() ?ޤ???
tcsetattr
() ???Ф???????
fd
??ͭ???ʥե????뵭?һҤǤϤ????ޤ?????
- [
EINTR
]
- ?ؿ?
tcsetattr
()
???????ʥ??ˤ??ä????Ǥ????ޤ?????
- [
EINVAL
]
- ?ؿ?
tcsetattr
() ?ΰ???
action
??ͭ???Ǥʤ??????ޤ??? termios
??¤?????Υ??ȥ??ӥ塼?Ȥ?
???ݡ??Ȥ????Ƥ??ʤ??ͤ??ѹ????褦?Ȥ??Ƥ??ޤ???
- [
ENOTTY
]
- ?ؿ?
tcgetattr
() ?ޤ???
tcsetattr
() ?ΰ??? fd
?˷??ӤĤ????ե????뤬??ü???ǤϤ????ޤ?????
?ؿ? tcgetattr
(),
tcsetattr
() ?ϡ? IEEE Std
1003.1-1988 (“POSIX.1”)
???ʤ?Ŭ?礷?Ƥ????ȹͤ??????ޤ????ؿ?
cfmakeraw
() ??????
cfsetspeed
() ?ϡ?
tcsetattr
() ?ؿ???
TCSASOFT
???ץ???????Ʊ?ͤ?
IEEE Std 1003.1-1988 (“POSIX.1”)
???ʤγ?ĥ?Ǥ???