Rechercher une page de manuel
termios
Langue: ja
Version: 2004-10-31 (openSuse - 09/10/07)
Section: 3 (Bibliothèques de fonctions)
Sommaire
̾Á°
termios, tcgetattr, tcsetattr, tcsendbreak, tcdrain, tcflush, tcflow, cfmakeraw, cfgetospeed, cfgetispeed, cfsetispeed, cfsetospeed, cfsetspeed - ¥¿¡¼¥ß¥Ê¥ë°À¤Î¼èÆÀ¡¦ÀßÄê¡¢¥é¥¤¥óÀ©¸æ¡¢¥Ü¡¼¥ì¡¼¥È¤Î¼èÆÀ¡¦ÀßÄê½ñ¼°
#include <termios.h>#include <unistd.h>
int tcgetattr(int fd, struct termios *termios_p);
int tcsetattr(int fd, int optional_actions, const struct termios *termios_p);
int tcsendbreak(int fd, int duration);
int tcdrain(int fd);
int tcflush(int fd, int queue_selector);
int tcflow(int fd, int action);
void cfmakeraw(struct termios *termios_p);
speed_t cfgetispeed(const struct termios *termios_p);
speed_t cfgetospeed(const struct termios *termios_p);
int cfsetispeed(struct termios *termios_p, speed_t speed);
int cfsetospeed(struct termios *termios_p, speed_t speed);
ÀâÌÀ
termios ´Ø¿ô·²¤Ï¡¢ÈóƱ´üÄÌ¿®¥Ý¡¼¥È¤òÀ©¸æ¤¹¤ë¤¿¤á¤ÎÈÆÍÑ ¥¿¡¼¥ß¥Ê¥ë¥¤¥ó¥¿¥Õ¥§¡¼¥¹¤Ç¤¢¤ë¡£termios ¹½Â¤ÂÎ
¤³¤³¤Ë¼¨¤µ¤ì¤Æ¤¤¤ë´Ø¿ô¤Î¿¤¯¤Ï¡¢°ú¤¿ô¤Ë termios_p ¤òÍѤ¤¤ë¡£ ¤³¤Î°ú¤¿ô¤Ï termios ¹½Â¤ÂΤؤΥݥ¤¥ó¥¿¤Ç¤¢¤ë¡£ ¤³¤Î¹½Â¤ÂΤˤϾ¯¤Ê¤¯¤È¤â°Ê²¼¤Ë¼¨¤¹¥á¥ó¥Ð¤¬´Þ¤Þ¤ì¤ë:
-
tcflag_t c_iflag; /* input modes */ tcflag_t c_oflag; /* output modes */ tcflag_t c_cflag; /* control modes */ tcflag_t c_lflag; /* local modes */ cc_t c_cc[NCCS]; /* control chars */
°Ê²¼¤Ë¡¢¤³¤ì¤é¤Î¥Õ¥£¡¼¥ë¥É¤Ë³ä¤êÅö¤Æ²Äǽ¤ÊÃͤˤĤ¤¤ÆÀâÌÀ¤¹¤ë¡£ ºÇ½é¤Î 4 ¤Ä¤Î¥Ó¥Ã¥È¥Þ¥¹¥¯¥Õ¥£¡¼¥ë¥É¤Ç¤Ï¡¢ ´Ø·¸¤¹¤ë¥Õ¥é¥°¤ÎÄêµÁ¤Î¤¤¤¯¤Ä¤«¤Ï¡¢ÆÃÄê¤Îµ¡Ç½¸¡ºº¥Þ¥¯¥í (feature_test_macros(7) »²¾È) ¤¬ÄêµÁ¤µ¤ì¤¿¾ì¹ç¤Ë¤Î¤ß¸ø³«¤µ¤ì¤ë¡£ ɬÍפʵ¡Ç½¸¡ºº¥Þ¥¯¥í¤Ï³Ñ³ç¸Ì ("[]") Æâ¤Ë½ñ¤«¤ì¤Æ¤¤¤ë¡£
°Ê²¼¤ÎÀâÌÀ¤Ç¡¢ "POSIX ¤Ë¤Ï¤Ê¤¤" ¤È¤¢¤ë¾ì¹ç¤Ï¡¢ ¤½¤ÎÃͤ¬ POSIX.1-2001 ¤Çµ¬Äꤵ¤ì¤Æ¤¤¤Ê¤¤¤³¤È¤ò°ÕÌ£¤·¡¢ "XSI" ¤È¤¢¤ë¾ì¹ç¤Ï¡¢¤½¤ÎÃͤ¬ POSIX.1-2001 ¤Î XSI ³ÈÄ¥¤Ç µ¬Äꤵ¤ì¤Æ¤¤¤ë¤³¤È¤ò°ÕÌ£¤¹¤ë¡£
c_iflag ¥Õ¥é¥°¤Ë¤Ï°Ê²¼¤ÎÍ×ÁǤò»ØÄê¤Ç¤¤ë:
- IGNBRK
- ÆþÎÏÃæ¤Î BREAK ¿®¹æ¤ò̵»ë¤¹¤ë¡£
- BRKINT
- IGNBRK ¤¬ÀßÄꤵ¤ì¤Æ¤¤¤ë¾ì¹ç¤Ï¡¢BREAK ¿®¹æ¤Ï̵»ë¤µ¤ì¤ë¡£ IGNBRK ¤¬ÀßÄꤵ¤ì¤Æ¤¤¤Ê¤¤¤¬¡¢BRKINT ¤¬ÀßÄꤵ¤ì¤Æ¤¤¤ë¾ì¹ç¤Ï¡¢ BREAK ¿®¹æ¤Ë¤è¤Ã¤ÆÆþ½ÐÎÏ¥¥å¡¼¤¬¥Õ¥é¥Ã¥·¥å¤µ¤ì¡¢ ¤µ¤é¤Ë¡¢Ã¼Ëö¤¬¥Õ¥©¥¢¥°¥é¥¦¥ó¥É¥×¥í¥»¥¹¥°¥ë¡¼¥×¤ÎÀ©¸æüËö¤Î¾ì¹ç¤Ï¡¢ ¥Õ¥©¥¢¥°¥é¥¦¥ó¥É¥×¥í¥»¥¹¥°¥ë¡¼¥×¤Ë SIGINT ¤¬Á÷¤é¤ì¤ë¡£ IGNBRK ¤â BRKINT ¤âÀßÄꤵ¤ì¤Æ¤¤¤Ê¤¤¾ì¹ç¡¢ BREAK ¤ò NULL ¥Ð¥¤¥È ('\0') ¤È¤·¤ÆÆɤ߹þ¤à¡£ ¤¿¤À¤·¡¢PARMRK ¤¬ÀßÄꤵ¤ì¤Æ¤¤¤ë¾ì¹ç¤Ï \377 \0 \0 ¤Î¥·¡¼¥±¥ó¥¹¤È¤·¤Æ Æɤ߹þ¤à¡£
- IGNPAR
- ¥Õ¥ì¡¼¥à¥¨¥é¡¼¤ª¤è¤Ó¥Ñ¥ê¥Æ¥£¥¨¥é¡¼¤ò̵»ë¤¹¤ë¡£
- PARMRK
- IGNPAR ¤¬ÀßÄꤵ¤ì¤Æ¤¤¤Ê¤¤¾ì¹ç¡¢¥Ñ¥ê¥Æ¥£¥¨¥é¡¼¤¢¤ë¤¤¤Ï¥Õ¥ì¡¼¥à¥¨¥é¡¼ ¤ÎȯÀ¸¤·¤¿Ê¸»ú¤ÎÁ°¤Ë \377 \0 ¤òÉղ乤롣IGNPAR ¤â PARMRK ¤â ÀßÄꤵ¤ì¤Æ¤¤¤Ê¤¤¾ì¹ç¡¢¥Ñ¥ê¥Æ¥£¥¨¥é¡¼¤¢¤ë¤¤¤Ï¥Õ¥ì¡¼¥à¥¨¥é¡¼¤ÎȯÀ¸¤·¤¿Ê¸»ú¤ò \0 ¤È¤·¤ÆÆɤ߹þ¤à¡£
- INPCK
- ÆþÎϤΥѥê¥Æ¥£¥Á¥§¥Ã¥¯¤ò͸ú¤Ë¤¹¤ë¡£
- ISTRIP
- 8 ¥Ó¥Ã¥ÈÌܤòÍî¤È¤¹¡£
- INLCR
- ÆþÎϤΠNL (New Line: ²þ¹Ôʸ»ú) ¤ò CR (Carriage Return: Éüµ¢Ê¸»ú) ¤Ë ÃÖ¤´¹¤¨¤ë¡£
- IGNCR
- ÆþÎϤΠCR ¤ò̵»ë¤¹¤ë¡£
- ICRNL
- (IGNCR ¤¬ÀßÄꤵ¤ì¤Æ¤¤¤Ê¤¤¾ì¹ç) ÆþÎϤΠCR ¤ò NL ¤ËÃÖ¤´¹¤¨¤ë¡£
- IUCLC
- (POSIX ¤Ë¤Ï¤Ê¤¤) ÆþÎϤÎÂçʸ»ú¤ò¾®Ê¸»ú¤ËÃÖ¤´¹¤¨¤ë¡£
- IXON
- ½ÐÎϤΠXON/XOFF ¥Õ¥í¡¼À©¸æ¤ò͸ú¤Ë¤¹¤ë¡£
- IXANY
- (XSI) Ǥ°Õ¤Îʸ»ú¤òÆþÎϤ¹¤ë¤È¡¢Ää»ß¤·¤Æ¤¤¤¿½ÐÎϤòºÆ³«¤¹¤ë (¥Ç¥Õ¥©¥ë¥È¤Ç¤Ï¡¢START ʸ»ú¤Ç¤Î¤ß½ÐÎϤ¬ºÆ³«¤µ¤ì¤ë)¡£
- IXOFF
- ÆþÎϤΠXON/XOFF ¥Õ¥í¡¼À©¸æ¤ò͸ú¤Ë¤¹¤ë¡£
- IMAXBEL
- (POSIX ¤Ë¤Ï¤Ê¤¤) ÆþÎÏ¥¥å¡¼¤¬°ìÇդλþ¤Ë¥Ù¥ë¤òÌĤ餹¡£ Linux ¤Ç¤Ï¤³¤Î¥Ó¥Ã¥È¤Ï¼ÂÁõ¤µ¤ì¤Æ¤ª¤é¤º¡¢ ¾ï¤Ë¥»¥Ã¥È¤µ¤ì¤Æ¤¤¤ë¤«¤Î¤è¤¦¤Ë¿¶Éñ¤¦¡£
- IUTF8 (Linux 2.6.4 °Ê¹ß)
- (POSIX ¤Ë¤Ï¤Ê¤¤) ÆþÎϤ¬ UTF8 ¤Ç¤¢¤ë; ¤³¤ì¤Ë¤è¤ê cooked mode ¤Çʸ»úºï½ü (character-erase) ¤ò Àµ¤·¤¯µ¡Ç½¤µ¤»¤ë¤³¤È¤¬¤Ç¤¤ë¡£
POSIX.1 ¤ÇÄêµÁ¤µ¤ì¤Æ¤¤¤ë c_oflag ¥Õ¥é¥°¤ò°Ê²¼¤Ë¼¨¤¹:
- OPOST
- ¼ÂÁõ¤Ë°Í¸¤·¤¿½ÐÎϽèÍý¤ò͸ú¤Ë¤¹¤ë¡£
»Ä¤ê¤Î c_oflag ¥Õ¥é¥°¤Ï¡¢Æõ¤Î¤Ê¤¤¸Â¤ê POSIX.1-2001 ¤ÇÄêµÁ¤µ¤ì¤Æ¤¤¤ë¡£
- OLCUC
- (POSIX ¤Ë¤Ï¤Ê¤¤) ½ÐÎÏ»þ¤Ë¾®Ê¸»ú¤òÂçʸ»ú¤ËÊÑ´¹¤¹¤ë¡£
- ONLCR
- (XSI) ½ÐÎϤΠNL ¤ò CR-NL ¤ËÃÖ¤´¹¤¨¤ë¡£
- OCRNL
- ½ÐÎϤΠCR ¤ò NL ¤ËÃÖ¤´¹¤¨¤ë¡£
- ONOCR
- 0 ·åÌÜ¤Ç CR ¤ò½ÐÎϤ·¤Ê¤¤¡£
- ONLRET
- CR ¤ò½ÐÎϤ·¤Ê¤¤¡£
- OFILL
- žÁ÷»þ´Ö¤òÃ٤餻¤ë¤Î¤Ç¤Ï¤Ê¤¯¡¢ÊäŶʸ»ú (fill character) ¤òÁ÷¤ë¡£ (ÌõÃí:ÆÃÄê¤Îʸ»ú¤ËÂФ·¤Æ¡¢Ã¼Ëö¦¤Î½èÍý¤òÂԤĤ¿¤á¤ËžÁ÷¤ò°ìÄê»þ´Ö Ã٤餻¤ë¤³¤È¤¬¤Ç¤¤ë¡£¤Þ¤¿¡¢ OFILL ¤ò»ØÄꤹ¤ë¤È žÁ÷¤òÃ٤餻¤ëÂå¤ï¤ê¤ËÊäŶʸ»ú¤òÁ÷¤ë¡£)
- OFDEL
- (POSIX ¤Ë¤Ï¤Ê¤¤) ÊäŶʸ»ú¤ò ASCII DEL ¤Ë¤¹¤ë¡£ ¤³¤Î¥Õ¥é¥°¤¬ÀßÄꤵ¤ì¤Æ¤¤¤Ê¤¤¾ì¹ç¤Ï ASCII NUL ('\0') ¤Ë¤Ê¤ë¡£ (Linux ¤Ç¤Ï¼ÂÁõ¤µ¤ì¤Æ¤¤¤Ê¤¤)
- NLDLY
- NL ¤ÎÃÙ±ä¤òÀßÄꤹ¤ë¡£ÃÍ¤Ï NL0 (ÃÙ±ä¤Ê¤·) ¤ª¤è¤Ó NL1 ¤Ç¤¢¤ë¡£ [_BSD_SOURCE ¤« _SVID_SOURCE ¤« _XOPEN_SOURCE ¤¬É¬Í×]
- CRDLY
- CR ¤ÎÃÙ±ä¤òÀßÄꤹ¤ë¡£ÃÍ¤Ï CR0 (ÃÙ±ä¤Ê¤·), CR1, CR2,CR3 ¤Ç¤¢¤ë¡£ [_BSD_SOURCE ¤« _SVID_SOURCE ¤« _XOPEN_SOURCE ¤¬É¬Í×]
- TABDLY
- ¿åÊ¿¥¿¥Ö (horizontal tab) ¤ÎÃÙ±ä¤òÀßÄꤹ¤ë¡£ ÃÍ¤Ï TAB0 (ÃÙ±ä¤Ê¤·), TAB1, TAB2, TAB3 (XTABS) ¤Ç¤¢¤ë¡£ [_BSD_SOURCE ¤« _SVID_SOURCE ¤« _XOPEN_SOURCE ¤¬É¬Í×] XTAB3 (¤³¤ì¤Ï XTABS ¤ÈƱ¤¸¤Ç¤¢¤ë) ¤ÎÃͤϥ¿¥Ö¤ò¥¹¥Ú¡¼¥¹²¿¸Ä¤ËÊÑ´¹¤¹¤ë¤«¤ò¼¨¤¹ (¥¿¥Ö¤Ï 8 ·åËè¤Ë»ß¤Þ¤ë)¡£
- BSDLY
- ¸åÂà (backspace) ¤ÎÃÙ±ä¤òÀßÄꤹ¤ë¡£ ÃÍ¤Ï BS0 (ÃÙ±ä¤Ê¤·) ¤¢¤ë¤¤¤Ï BS1 ¤Ç¤¢¤ë¡£ (¼ÂÁõ¤µ¤ì¤¿¤³¤È¤Ï¤Ê¤¤) [_BSD_SOURCE ¤« _SVID_SOURCE ¤« _XOPEN_SOURCE ¤¬É¬Í×]
- VTDLY
- ¿âľ¥¿¥Ö (vertical tab) ¤ÎÃÙ±ä¤òÀßÄꤹ¤ë¡£ ÃÍ¤Ï VT0 (ÃÙ±ä¤Ê¤·) ¤¢¤ë¤¤¤Ï VT1 ¤Ç¤¢¤ë¡£
- FFDLY
- ÊÇÁ÷¤ê (form feed) ¤ÎÃÙ±ä¤òÀßÄꤹ¤ë¡£ ÃÍ¤Ï FF0 (ÃÙ±ä¤Ê¤·) ¤¢¤ë¤¤¤Ï FF1 ¤Ç¤¢¤ë¡£ [_BSD_SOURCE ¤« _SVID_SOURCE ¤« _XOPEN_SOURCE ¤¬É¬Í×]
c_cflag ¥Õ¥é¥°¤Ï°Ê²¼¤ÎÄ̤ê:
- CBAUD
- (POSIX ¤Ë¤Ï¤Ê¤¤) ¥Ü¡¼¥ì¡¼¥È¥Þ¥¹¥¯ (4+1 ¥Ó¥Ã¥È)¡£ [_BSD_SOURCE ¤« _SVID_SOURCE ¤¬É¬Í×]
- CBAUDEX
- (POSIX ¤Ë¤Ï¤Ê¤¤) ÄɲäΥܡ¼¥ì¡¼¥È¥Þ¥¹¥¯ (1 ¥Ó¥Ã¥È)¡£ CBAUD ¤Ë´Þ¤Þ¤ì¤Æ¤¤¤ë¡£ [_BSD_SOURCE ¤« _SVID_SOURCE ¤¬É¬Í×]
(POSIX ¤Ç¤Ï¡¢ termios ¹½Â¤ÂΤ˳ÊǼ¤µ¤ì¤¿¥Ü¡¼¥ì¡¼¥È¤ÏÀµ³Î¤Ê¤â¤Î¤Ç¤Ï¤Ê¤¯¡¢ ¥Ü¡¼¥ì¡¼¥È¤òÁàºî¤¹¤ë¤¿¤á¤Ë cfgetispeed() ¤È cfsetispeed() ¤¬Ä󶡤µ¤ì¤Æ¤¤¤ë¡£ c_cflag Æâ¤Î CBAUD ¤ÇÁªÂò¤µ¤ì¤¿¥Ó¥Ã¥È¤ò»È¤¦¥·¥¹¥Æ¥à¤â¤¢¤ì¤Ð¡¢ sg_ispeed ¤ä sg_ospeed ¤È¤¤¤Ã¤¿ÆÈΩ¤·¤¿¥Õ¥£¡¼¥ë¥É¤ò»È¤¦¤â¤Î¤â¤¢¤ë¡£)
- CSIZE
- ʸ»ú¥µ¥¤¥º¤òÀßÄꤹ¤ë¡£ ÃÍ¤Ï CS5, CS6, CS7, CS8 ¤Ç¤¢¤ë¡£
- CSTOPB
- ¥¹¥È¥Ã¥×¥Ó¥Ã¥È¤ò 1 ¤Ç¤Ï¤Ê¤¯ 2 ¤Ë¤¹¤ë¡£
- CREAD
- ¼õ¿®¤ò͸ú¤Ë¤¹¤ë¡£
- PARENB
- ½ÐÎϤ˥ѥê¥Æ¥£¤òÉղä·¡¢ÆþÎϤΥѥê¥Æ¥£¥Á¥§¥Ã¥¯¤ò¹Ô¤¦¡£
- PARODD
- ÀßÄꤵ¤ì¤ë¤È¡¢ÆþÎϤª¤è¤Ó½ÐÎϤËÂФ¹¤ë¥Ñ¥ê¥Æ¥£¤¬´ñ¿ô¥Ñ¥ê¥Æ¥£¤È¤Ê¤ë¡£ ÀßÄꤵ¤ì¤Ê¤¤¾ì¹ç¡¢¶ö¿ô¥Ñ¥ê¥Æ¥£¤¬»ÈÍѤµ¤ì¤ë¡£
- HUPCL
- ºÇ¸å¤Î¥×¥í¥»¥¹¤¬¥Ç¥Ð¥¤¥¹¤ò¥¯¥í¡¼¥º¤·¤¿¸å¡¢¥â¥Ç¥à¤ÎÀ©¸æÀþ¤ò low ¤Ë¤¹¤ë (ÀÚÃǤ¹¤ë)¡£
- CLOCAL
- ¥â¥Ç¥à¤ÎÀ©¸æÀþ¤ò̵»ë¤¹¤ë¡£
- LOBLK
- (POSIX ¤Ë¤Ï¤Ê¤¤) ¸½ºß¤Î¥·¥§¥ëÁذʳ°¤«¤é¤Î½ÐÎϤòÍÞÀ©¤¹¤ë¡£
shl (¥·¥§¥ëÁØ) ¤ÇÍѤ¤¤é¤ì¤ë¡£(Linux ¤Ç¤Ï¼ÂÁõ¤µ¤ì¤Æ¤¤¤Ê¤¤) - CIBAUD
- (POSIX ¤Ë¤Ï¤Ê¤¤) ÆþÎÏ®Å٤Υޥ¹¥¯¡£ CIBAUD ¥Ó¥Ã¥È¤Î¤¿¤á¤ÎÃÍ¤Ï CBAUD ¥Ó¥Ã¥È¤Î¤¿¤á¤ÎÃͤÈƱ¤¸¤Ç¤¢¤ê¡¢ º¸¤Ë IBSHIFT ¥Ó¥Ã¥È¥·¥Õ¥È¤·¤¿¤â¤Î¤Ç¤¢¤ë¡£ [_BSD_SOURCE ¤« _SVID_SOURCE ¤¬É¬Í×] (Linux ¤Ç¤Ï¼ÂÁõ¤µ¤ì¤Æ¤¤¤Ê¤¤)
- CMSPAR
- (POSIX ¤Ë¤Ï¤Ê¤¤) (°ìÉô¤Î¥·¥ê¥¢¥ë¥Ç¥Ð¥¤¥¹¤Ç¥µ¥Ý¡¼¥È¤µ¤ì¤Æ¤¤¤ë) ¡Ö¥¹¥Æ¥£¥Ã¥¯ (stick)¡×¥Ñ¥ê¥Æ¥£ (¥Þ¡¼¥¯/¥¹¥Ú¡¼¥¹ ¥Ñ¥ê¥Æ¥£)¤ò»ÈÍѤ¹¤ë¡£ PARODD ¤¬ÀßÄꤵ¤ì¤¿¾ì¹ç¥Ñ¥ê¥Æ¥£¥Ó¥Ã¥È¤Ï¾ï¤Ë 1 ¤È¤Ê¤ê¡¢ ÀßÄꤵ¤ì¤Ê¤¤¾ì¹ç¤Ï¾ï¤Ë 0 ¤È¤Ê¤ë¡£ [_BSD_SOURCE ¤« _SVID_SOURCE ¤¬É¬Í×]
- CRTSCTS
- (POSIX ¤Ë¤Ï¤Ê¤¤) RTS/CTS (¥Ï¡¼¥É¥¦¥§¥¢) ¥Õ¥í¡¼À©¸æ¤ò͸ú¤Ë¤¹¤ë¡£ [_BSD_SOURCE ¤« _SVID_SOURCE ¤¬É¬Í×]
c_lflag ¥Õ¥é¥°¤Ï°Ê²¼¤ÎÄ̤ê:
- ISIG
- INTR, QUIT, SUSP, DSUSP ¤Îʸ»ú¤ò¼õ¿®¤·¤¿»þ¡¢Âбþ¤¹¤ë¥·¥°¥Ê¥ë¤ò ȯÀ¸¤µ¤»¤ë¡£
- ICANON
- ¥«¥Î¥Ë¥«¥ë¥â¡¼¥É¤ò͸ú¤Ë¤¹¤ë (²¼µ»²¾È)¡£
- XCASE
- (POSIX ¤Ë¤Ï¤Ê¤¤; Linux ¤Ç¤ÏÂбþ¤·¤Æ¤¤¤Ê¤¤) ICANON ¤¬Æ±»þ¤ËÀßÄꤵ¤ì¤¿¾ì¹ç¡¢Ã¼Ëö¤ÏÂçʸ»ú¤Î¤ß¤¬Í¸ú¤Ç¤¢¤ë¡£ ÆþÎϤµ¤ì¤¿Ê¸»ú¤Ï \ ¤¬ÉÕ¤¤¤¿Ê¸»ú¤ò½ü¤¤¤Æ¾®Ê¸»ú¤ËÊÑ´¹¤µ¤ì¤ë¡£ ½ÐÎÏ»þ¤Ï¡¢Âçʸ»ú¤ÎÁ°¤Ë \ ¤¬ÉÕ¤¡¢¾®Ê¸»ú¤ÏÂçʸ»ú¤ËÊÑ´¹¤µ¤ì¤ë¡£
- ECHO
- ÆþÎϤµ¤ì¤¿Ê¸»ú¤ò¥¨¥³¡¼¤¹¤ë¡£
- ECHOE
- ICANON ¤âƱ»þ¤ËÀßÄꤵ¤ì¤¿¾ì¹ç¡¢ERASE ʸ»ú¤ÏÁ°¤Îʸ»ú¤òºï½ü¤·¡¢ WERASE ʸ»ú¤ÏÁ°¤Îñ¸ì¤òºï½ü¤¹¤ë¡£
- ECHOK
- ICANON ¤âƱ»þ¤ËÀßÄꤵ¤ì¤¿¾ì¹ç¡¢KILL ʸ»ú¤Ï¸½ºß¤Î¹Ô¤òºï½ü¤¹¤ë¡£
- ECHONL
- ICANON ¤âƱ»þ¤ËÀßÄꤵ¤ì¤¿¾ì¹ç¡¢ ECHO ¤¬ÀßÄꤵ¤ì¤Æ¤¤¤Ê¤¯¤Æ¤â NL ʸ»ú¤ò¥¨¥³¡¼¤¹¤ë¡£
- ECHOCTL
- (POSIX ¤Ë¤Ï¤Ê¤¤) ECHO ¤âƱ»þ¤ËÀßÄꤵ¤ì¤¿¾ì¹ç¡¢ TAB, NL, START, STOP ¤Î ASCII À©¸æʸ»ú¤¬ ^X ¤È¤·¤Æ¥¨¥³¡¼¤µ¤ì¤ë¡£ X ¤ÏÀ©¸æʸ»ú¤è¤ê ASCII ¥³¡¼¥É¤Ç 0x10 ¤À¤±Â礤Êʸ»ú¤Ç¤¢¤ë¡£ Î㤨¤Ðʸ»ú 0x28 (BS) ¤Ï ^H ¤È¥¨¥³¡¼¤µ¤ì¤ë¡£ [_BSD_SOURCE ¤« _SVID_SOURCE ¤¬É¬Í×]
- ECHOPRT
- (POSIX ¤Ë¤Ï¤Ê¤¤) ICANON ¤ª¤è¤Ó IECHO ¤¬Æ±»þ¤ËÀßÄꤵ¤ì¤Æ¤¤¤ë¾ì¹ç¡¢ ºï½ü¤µ¤ì¤¿Ê¸»ú¤âɽ¼¨¤µ¤ì¤ë¡£ [_BSD_SOURCE ¤« _SVID_SOURCE ¤¬É¬Í×]
- ECHOKE
- (POSIX ¤Ë¤Ï¤Ê¤¤) ICANON ¤âÀßÄꤵ¤ì¤¿¾ì¹ç¡¢ KILL ¤¬¹Ô¤Î³Æʸ»ú¤ò¾Ãµî¤¹¤ëÂå¤ï¤ê¤Ë¥¨¥³¡¼¤µ¤ì¤ë¡£ ¤³¤ì¤Ï ECHOE ¤ª¤è¤Ó ECHOPRT ¤ò»ØÄꤹ¤ë¤³¤È¤ÈÅù¤·¤¤¡£ [_BSD_SOURCE ¤« _SVID_SOURCE ¤¬É¬Í×]
- DEFECHO
- (POSIX ¤Ë¤Ï¤Ê¤¤) ¥×¥í¥»¥¹¤¬Æɤ߹þ¤ó¤À¤È¤¤Ë¤À¤±¥¨¥³¡¼¤¹¤ë¡£ (Linux ¤Ç¤Ï¼ÂÁõ¤µ¤ì¤Æ¤¤¤Ê¤¤)
- FLUSHO
- (POSIX ¤Ë¤Ï¤Ê¤¤; Linux ¤Ç¤ÏÂбþ¤·¤Æ¤¤¤Ê¤¤) ½ÐÎϤò¥Õ¥é¥Ã¥·¥å¤¹¤ë¡£¤³¤Î¥Õ¥é¥°¤Ï DISCARD ʸ»ú¤òÆþÎϤ¹¤ë¤³¤È¤ÇÀÚÂؤ¨¤é¤ì¤ë¡£ [_BSD_SOURCE ¤« _SVID_SOURCE ¤¬É¬Í×]
- NOFLSH
- SIGINT, SIGQUIT, SIGSUSP ¥·¥°¥Ê¥ëȯÀ¸»þ¤ÎÆþÎÏ¡¦½ÐÎÏ¥¥å¡¼¤Î¥Õ¥é¥Ã¥·¥å¤ò ̵¸ú¤Ë¤¹¤ë¡£
- TOSTOP
- ¥Ð¥Ã¥¯¥°¥é¥¦¥ó¥É¥×¥í¥»¥¹¤Î¥×¥í¥»¥¹¥°¥ë¡¼¥×¤ÇÀ©¸æüËö¤Øʸ»ú¤ò½ÐÎϤ·¤è¤¦¤È ¤·¤Æ¤¤¤ë¥×¥í¥»¥¹¤ËÂФ·¤Æ SIGTTOU ¥·¥°¥Ê¥ë¤òÁ÷¤ë¡£
- PENDIN
- (POSIX ¤Ë¤Ï¤Ê¤¤; Linux ¤Ç¤ÏÂбþ¤·¤Æ¤¤¤Ê¤¤) ¼¡¤Îʸ»ú¤òÆɤ߹þ¤ó¤À»þ¡¢ÆþÎÏ¥¥å¡¼Ãæ¤ÎÁ´Ê¸»ú¤òºÆɽ¼¨¤¹¤ë¡£ (bash ¤ÏÆþÎϹԤò¤³¤Î¤è¤¦¤Ë½èÍý¤·¤Æ¤¤¤ë) [_BSD_SOURCE ¤« _SVID_SOURCE ¤¬É¬Í×]
- IEXTEN
- ¼ÂÁõ°Í¸¤ÎÆþÎϽèÍý¤ò͸ú¤Ë¤¹¤ë¡£ ¤³¤Î¥Õ¥é¥°¤Ï¡¢Æüìʸ»ú¤Ç¤¢¤ë EOL2, LNEXT, REPRINT, WERASE ¤ä¡¢ IUCLC ¥Õ¥é¥°¤ò͸ú¤Ë¤¹¤ë¤¿¤á¤ËɬÍפǤ¢¤ë¡£
c_cc ÇÛÎó¤ÏÆüì¤ÊÀ©¸æʸ»ú¤òÄêµÁ¤·¤Æ¤¤¤ë¡£ ¥·¥ó¥Ü¥ë¤Î°ìÍ÷ (½é´üÃÍ) ¤È°ÕÌ£¤Ï°Ê²¼¤ÎÄ̤ꡣ
- VINTR
- (003, ETX, Ctrl-C ¤« 0177, DEL, rubout) ³ä¤ê¹þ¤ßʸ»ú¡£SIGINT ¥·¥°¥Ê¥ë¤òÁ÷¤ë¡£ ISIG ¤¬¥»¥Ã¥È¤µ¤ì¤Æ¤¤¤ë¾ì¹ç¤Ëǧ¼±¤·¡¢ÆþÎϤˤÏÅϤµ¤ì¤Ê¤¤¡£
- VQUIT
- (034, FS, Ctrl-\) ½ªÎ»Ê¸»ú¡£SIGQUIT ¥·¥°¥Ê¥ë¤òÁ÷¤ë¡£ ISIG ¤¬¥»¥Ã¥È¤µ¤ì¤Æ¤¤¤ë¾ì¹ç¤Ëǧ¼±¤·¡¢ÆþÎϤˤÏÅϤµ¤ì¤Ê¤¤¡£
- VERASE
- (0177, DEL, rubout ¤« 010, BS, Ctrl-H ¤« #) ¾Ãµîʸ»ú¡£¤³¤ì¤Ë¤è¤ê¡¢Ä¾Á°¤Î̤¾Ãµîʸ»ú¤ò¾Ãµî¤¹¤ë¡£ ¤·¤«¤·¡¢EOF ¤ä¹ÔƬ¤òĶ¤¨¤Æ¤Ï¾Ãµî¤·¤Ê¤¤¡£ ICANON ¤¬¥»¥Ã¥È¤µ¤ì¤Æ¤¤¤ë¾ì¹ç¤Ëǧ¼±¤·¡¢ÆþÎϤˤÏÅϤµ¤ì¤Ê¤¤¡£
- VKILL
- (025, NAK, Ctrl-U ¤« Ctrl-X ¤« @) ´°Á´¾Ãµîʸ»ú¡£Ä¾Á°¤Î EOF ¤«¹ÔƬ°Ê¹ß¤ÎÁ´¤Æ¤ÎÆþÎϤò¾Ãµî¤¹¤ë¡£
- VEOF
- (004, EOT, Ctrl-D) ¥Õ¥¡¥¤¥ë½ªÃ¼Ê¸»ú¡£ ¤è¤êÀµ³Î¤Ë¤Ï¡¢tty ¥Ð¥Ã¥Õ¥¡¤ÎÆâÍƤò¹ÔËö¤òÂÔ¤¿¤º¤Ë¥æ¡¼¥¶¡¼¥×¥í¥°¥é¥à¤ËÁ÷¤ë¡£ ¤³¤ì¤¬¹Ô¤ÎºÇ½é¤Îʸ»ú¤À¤Ã¤¿¾ì¹ç¡¢¥æ¡¼¥¶¡¼¥×¥í¥°¥é¥à¤Î read(2) ¤Ï 0 ¤ò ÊÖ¤·¡¢¥Õ¥¡¥¤¥ë½ªÃ¼¤Ç¤¢¤ë¤³¤È¤òÃΤ餻¤ë¡£ ICANON ¤¬¥»¥Ã¥È¤µ¤ì¤Æ¤¤¤ë¾ì¹ç¤Ëǧ¼±¤·¡¢ÆþÎϤˤÏÅϤµ¤ì¤Ê¤¤¡£
- VMIN
- È󥫥Υ˥«¥ëÆɤ߹þ¤ß»þ¤ÎºÇ¾®Ê¸»ú¿ô¡£
- VEOL
- (0, NUL) ÄɲäιÔËöʸ»ú¡£ ICANON ¤¬¥»¥Ã¥È¤µ¤ì¤Æ¤¤¤ë¾ì¹ç¤Ëǧ¼±¤¹¤ë¡£
- VTIME
- È󥫥Υ˥«¥ëÆɤ߹þ¤ß»þ¤Î¥¿¥¤¥à¥¢¥¦¥È»þ´Ö (1/10 ÉÃñ°Ì)¡£
- VEOL2
- (POSIX ¤Ë¤Ï¤Ê¤¤; 0, NUL) ÄɲäιÔËöʸ»ú¡£ ICANON ¤¬¥»¥Ã¥È¤µ¤ì¤Æ¤¤¤ë¾ì¹ç¤Ëǧ¼±¤¹¤ë¡£
- VSWTCH
- (POSIX ¤Ë¤Ï¤Ê¤¤; Linux ¤Ç¤ÏÂбþ¤·¤Æ¤¤¤Ê¤¤; 0, NUL) ¥¹¥¤¥Ã¥Áʸ»ú (shl ¤Ç¤Î¤ßÍѤ¤¤é¤ì¤ë)¡£
- VSTART
- (021, DC1, Ctrl-Q) ³«»Ïʸ»ú¡£Ää»ßʸ»ú¤ÇÄä»ß¤·¤¿½ÐÎϤòºÆ³«¤¹¤ë¡£ IXON ¤¬¥»¥Ã¥È¤µ¤ì¤Æ¤¤¤ë¾ì¹ç¤Ëǧ¼±¤·¡¢ÆþÎϤˤÏÅϤµ¤ì¤Ê¤¤¡£
- VSTOP
- (023, DC3, Ctrl-S) Ää»ßʸ»ú¡£³«»Ïʸ»ú¤¬ÆþÎϤµ¤ì¤ë¤Þ¤Ç½ÐÎϤòÄä»ß¤¹¤ë¡£ IXON ¤¬ÀßÄꤵ¤ì¤Æ¤¤¤ë¾ì¹ç¤Ëǧ¼±¤·¡¢ÆþÎϤˤÏÅϤµ¤ì¤Ê¤¤¡£
- VSUSP
- (032, SUB, Ctrl-Z) ÃæÃÇʸ»ú¡£SIGTSTP ¥·¥°¥Ê¥ë¤òÁ÷¤ë¡£ ISIG ¤¬¥»¥Ã¥È¤µ¤ì¤Æ¤¤¤ë¾ì¹ç¤Ëǧ¼±¤·¡¢ÆþÎϤˤÏÅϤµ¤ì¤Ê¤¤¡£
- VDSUSP
- (POSIX ¤Ë¤Ï¤Ê¤¤; Linux ¤Ç¤ÏÂбþ¤·¤Æ¤¤¤Ê¤¤; 031, EM, Ctrl-Y) ÃÙ±äÃæÃÇʸ»ú¡£¥æ¡¼¥¶¡¼¥×¥í¥°¥é¥à¤«¤éʸ»ú¤¬Æɤ߹þ¤Þ¤ì¤¿»þ¤Ë SIGTSTP ¥·¥°¥Ê¥ë¤òÁ÷¤ë¡£ IEXTEN ¤È ISIG ¤¬¥»¥Ã¥È¤µ¤ì¤Æ¤¤¤Æ¡¢¥·¥¹¥Æ¥à¤¬¥¸¥ç¥ÖÀ©¸æ¤ËÂбþ¤·¤Æ¤¤¤ë¾ì¹ç¤Ë ǧ¼±¤·¡¢ÆþÎϤˤÏÅϤµ¤ì¤Ê¤¤¡£
- VLNEXT
- (POSIX ¤Ë¤Ï¤Ê¤¤; 026, SYN Ctrl-V) ¥ê¥Æ¥é¥ë¡£¼¡¤ÎÆþÎÏʸ»ú¤ò¥¨¥¹¥±¡¼¥×¤·¡¢ÆÃÊ̤ʰÕÌ£¤¬¤¢¤Ã¤Æ¤â²ò¼á¤·¤Ê¤¤¡£ IEXTEN ¤¬¥»¥Ã¥È¤µ¤ì¤Æ¤¤¤ë¾ì¹ç¤Ëǧ¼±¤·¡¢ÆþÎϤˤÏÅϤµ¤ì¤Ê¤¤¡£
- VWERASE
- (POSIX ¤Ë¤Ï¤Ê¤¤; 027, ETB, Ctrl-W) ñ¸ì¾Ãµî¡£ ICANON ¤È IEXTEN ¤¬¥»¥Ã¥È¤µ¤ì¤Æ¤¤¤ë¾ì¹ç¤Ëǧ¼±¤·¡¢ÆþÎϤˤÏÅϤµ¤ì¤Ê¤¤¡£
- VREPRINT
- (POSIX ¤Ë¤Ï¤Ê¤¤; 022, DC2, Ctrl-R) ¤Þ¤ÀÆɤ߹þ¤ó¤Ç¤¤¤Ê¤¤Ê¸»úÎó¤òºÆɽ¼¨¤¹¤ë¡£ ICANON ¤È IEXTEN ¤¬¥»¥Ã¥È¤µ¤ì¤Æ¤¤¤ë¾ì¹ç¤Ëǧ¼±¤·¡¢ÆþÎϤˤÏÅϤµ¤ì¤Ê¤¤¡£
- VDISCARD
- (POSIX ¤Ë¤Ï¤Ê¤¤; Linux ¤Ç¤ÏÂбþ¤·¤Æ¤¤¤Ê¤¤; 017, SI, Ctrl-O) ̤Á÷¿®¥Ð¥Ã¥Õ¥¡¤ÎÆâÍƤÎÇË´þ/Êݸ¤òÀÚ¤êÂؤ¨¤ë¡£ IEXTEN ¤¬¥»¥Ã¥È¤µ¤ì¤Æ¤¤¤ë¾ì¹ç¤Ëǧ¼±¤·¡¢ÆþÎϤˤÏÅϤµ¤ì¤Ê¤¤¡£
- VSTATUS
- (POSIX ¤Ë¤Ï¤Ê¤¤; Linux ¤Ç¤ÏÂбþ¤·¤Æ¤¤¤Ê¤¤; ¾õÂÖÍ×µá: 024, DC4, Ctrl-T)
¤³¤ì¤é¤Î¥·¥ó¥Ü¥ë¤Î¼¨¤¹ÃͤÏÁ´¤Æ°Û¤Ê¤ë¡£ ¤¿¤À¤·¡¢VTIME, VMIN ¤Ï¤½¤ì¤¾¤ì VEOL, VEOF ¤ÈƱ¤¸ÃͤǤ¢¤ë¡£ È󥫥Υ˥«¥ë¥â¡¼¥É¤Ç¤Ï¡¢Æüìʸ»ú¤Î°ÕÌ£¤Ï¥¿¥¤¥à¥¢¥¦¥È¤Î°ÕÌ£¤ËÊѤï¤ë¡£ VMIN ¤È VTIME ¤ÎÀâÌÀ¤Ë¤Ä¤¤¤Æ¤Ï¡¢²¼µ¤ÎÈ󥫥Υ˥«¥ë¥â¡¼¥É¤ÎÀâÌÀ¤ò»²¾È¤Î¤³¤È¡£
üËö¤ÎÀßÄê¤Î¼èÆÀ¤ÈÊѹ¹
tcgetattr() ¤Ï fd ¤Ë´Ø¤¹¤ë¥Ñ¥é¥á¡¼¥¿¤ò¼èÆÀ¤·¡¢termios_p ¤¬»²¾È¤¹¤ë¹½ ¤ÂÎ termios ¤ËÀßÄꤹ¤ë¡£¤³¤Î´Ø¿ô¤Ï¥Ð¥Ã¥¯¥°¥é¥¦¥ó¥É¥×¥í¥»¥¹¤«¤é ¸Æ¤Ð¤ì¤ë¤³¤È¤â¤¢¤ë¤¬¡¢¤³¤Î¾ì¹ç¡¢Ã¼Ëö¤Î°À¤Ï¥Õ¥©¥¢¥°¥é¥¦¥ó¥É¥×¥í¥»¥¹ ¤Ë¤è¤Ã¤ÆÊѲ½¤¹¤ë¤³¤È¤â¤¢¤ë¡£
tcsetattr() ¤ÏüËö¤Ë´ØÏ¢¤·¤¿¥Ñ¥é¥á¡¼¥¿¤òÀßÄꤹ¤ë (¥Ï¡¼¥É¥¦¥§¥¢¤ÎÀßÄê¤ËɬÍפǡ¢¤³¤³¤Ç ÀßÄê¤Ç¤¤Ê¤¤¤â¤Î¤ò½ü¤¯)¡£ÀßÄê¤Ë¤Ï termios_p ¤¬»²¾È¤¹¤ë termios ¹½Â¤ÂΤòÍѤ¤¤ë¡£ optional_actions ¤Ë¤ÏÊѹ¹¤¬Í¸ú¤È¤Ê¤ë¥¿¥¤¥ß¥ó¥°¤òÀßÄꤹ¤ë:
- TCSANOW
- ¤¿¤À¤Á¤ËÊѹ¹¤¬Í¸ú¤È¤Ê¤ë¡£
- TCSADRAIN
- fd ¤Ø¤Î½ÐÎϤ¬¤¹¤Ù¤ÆžÁ÷¤µ¤ì¤¿¸å¤ËÊѹ¹¤¬Í¸ú¤Ë¤Ê¤ë¡£¤³¤Îµ¡Ç½¤Ï ½ÐÎϤ˱ƶÁ¤¹¤ë¥Ñ¥é¥á¡¼¥¿¤òÊѹ¹¤¹¤ë»þ¤Ë»ÈÍѤ¹¤ë¤Ù¤¤Ç¤¢¤ë¡£
- TCSAFLUSH
- ¥Ñ¥é¥á¡¼¥¿¤òÊѹ¹¤¹¤ëÁ°¤Ë¡¢ fd ¤Ø¤Î½ÐÎϤ¬¤¹¤Ù¤ÆžÁ÷¤µ¤ì¡¢¼õ¿®¤·¤¿¤¬¤Þ¤ÀÆɤ߹þ¤ó¤Ç¤¤¤Ê¤¤¤¹¤Ù¤Æ¤Î ÆþÎϤ¬ÇË´þ¤µ¤ì¤ë¡£
¥«¥Î¥Ë¥«¥ë¥â¡¼¥É¤ÈÈ󥫥Υ˥«¥ë¥â¡¼¥É
c_lflag ¤Î ICANON ¥Õ¥é¥°¤ÎÀßÄê¤Ë¤è¤ê¡¢Ã¼Ëö¤¬¥«¥Î¥Ë¥«¥ë¥â¡¼¥É¤ÇÆ°ºî¤¹¤ë¤«¤¬·èÄꤵ¤ì¤ë¡£ ICANON ¤¬¥»¥Ã¥È¤µ¤ì¤¿¾ì¹ç¡¢¥«¥Î¥Ë¥«¥ë¥â¡¼¥É (canonical mode) ¤È¤Ê¤ê¡¢ ¥»¥Ã¥È¤µ¤ì¤Ê¤¤¾ì¹ç¡¢È󥫥Υ˥«¥ë¥â¡¼¥É (non-canonical mode) ¤È¤Ê¤ë¡£ ¥Ç¥Õ¥©¥ë¥È¤Ç¤Ï¡¢ ICANON ¤Ï¥»¥Ã¥È¤µ¤ì¤ë¡£¥«¥Î¥Ë¥«¥ë¥â¡¼¥É¤Ç¤Ï¡¢°Ê²¼¤Î¤è¤¦¤ÊÆ°ºî¤È¤Ê¤ë¡£
- *
- ÆþÎϤϹÔñ°Ì¤Ë¹Ô¤ï¤ì¤ë¡£ ¹Ô¶èÀÚ¤êʸ»ú¤¬ÂǤÁ¹þ¤Þ¤ì¤¿»þÅÀ¤Ç¡¢ÆþÎϹԤ¬ÍøÍѲÄǽ¤È¤Ê¤ë¡£ ¹Ô¶èÀÚ¤êʸ»ú¤Ï NL, EOL, EOL2 ¤ª¤è¤Ó¹ÔƬ¤Ç¤Î EOF ¤Ç¤¢¤ë¡£ EOF °Ê³°¤Î¾ì¹ç¡¢ read(2) ¤¬ÊÖ¤¹¥Ð¥Ã¥Õ¥¡¤Ë¹Ô¶èÀÚ¤êʸ»ú¤â´Þ¤á¤é¤ì¤ë¡£
- *
- ¹ÔÊÔ½¸¤¬Í¸ú¤È¤Ê¤ë (ERASE, KILL ¤¬¸ú²Ì¤ò»ý¤Ä¡£ IEXTEN ¥Õ¥é¥°¤¬ÀßÄꤵ¤ì¤¿¾ì¹ç¤Ï¡¢ WERASE, REPRINT, LNEXT ¤â¸ú²Ì¤ò»ý¤Ä)¡£ read(2) ¤ÏºÇÂç¤Ç¤â 1¹Ô¤ÎÆþÎϤ·¤«ÊÖ¤µ¤Ê¤¤¡£ read(2) ¤¬Í׵ᤷ¤¿¥Ð¥¤¥È¿ô¤¬¸½ºß¤ÎÆþÎϹԤΥХ¤¥È¿ô¤è¤ê¤â¾¯¤Ê¤¤¾ì¹ç¡¢ Í׵ᤷ¤¿¤Î¤ÈƱ¤¸¥Ð¥¤¥È¿ô¤À¤±¤¬Æɤ߹þ¤Þ¤ì¡¢ »Ä¤ê¤Îʸ»ú¤Ï¼¡²ó¤Î read(2) ¤ÇÆɤ߹þ¤Þ¤ì¤ë¡£
È󥫥Υ˥«¥ë¥â¡¼¥É¤Ç¤Ï¡¢ÆþÎϤϨºÂ¤ËÍøÍѲÄǽ¤È¤Ê¤ê (¥æ¡¼¥¶¤Ï¹Ô¶èÀÚ¤êʸ»ú¤òÂǤÁ¹þ¤àɬÍפϤʤ¤)¡¢ ¹ÔÊÔ½¸¤Ï̵¸ú¤È¤Ê¤ë¡£ MIN (c_cc[VMIN]) ¤È TIME (c_cc[VTIME]) ¤ÎÀßÄê¤Ë¤è¤ê¡¢ read(2) ¤¬´°Î»¤¹¤ë¾ò·ï¤¬·èÄꤵ¤ì¤ë¡£4¼ïÎà¤Î¾ì¹ç¤¬¤¢¤ë:
- *
- MIN == 0; TIME == 0: ¥Ç¡¼¥¿¤¬ÍøÍѲÄǽ¤Ç¤¢¤ì¤Ð¡¢ read(2) ¤Ï¤¹¤°¤ËÊ֤롣¤³¤Î¤È¤¤ÎÊÖ¤êÃͤϡ¢¤½¤Î¤È¤ÍøÍѲÄǽ¤Ê¥Ð¥¤¥È¿ô¤« read(2) ¤ÎÍ×µá¥Ð¥¤¥È¿ô¤Î¤¦¤Á¾®¤µ¤¤Êý¤È¤Ê¤ë¡£ ÍøÍѲÄǽ¤Ê¥Ç¡¼¥¿¤¬¤Ê¤¤¾ì¹ç read(2) ¤Ï 0 ¤òÊÖ¤¹¡£
- *
- MIN > 0; TIME == 0: read(2) ¤Ï¡¢ÍøÍѲÄǽ¤Ê¥Ç¡¼¥¿¤¬ MIN ¥Ð¥¤¥È¤«Í×µá¥Ð¥¤¥È¿ô¤Î¤¤¤º¤ì¤«¤Ë㤹¤ë¤Þ¤Ç Ää»ß¤¹¤ë¡£ÊÖ¤êÃͤϡ¢MIN ¤«Í×µá¥Ð¥¤¥È¿ô¤Î¾®¤µ¤¤Êý¤È¤Ê¤ë¡£
- *
- MIN == 0; TIME > 0: TIME ¤Ï¥¿¥¤¥Þ¤Î¾å¸Â¤òµ¬Äꤷ¡¢Ã±°Ì¤Ï 1/10 ÉäǤ¢¤ë¡£ ¥¿¥¤¥Þ¤Ï read(2) ¤¬¸Æ¤Ð¤ì¤¿»þÅÀ¤Ç³«»Ï¤µ¤ì¤ë¡£ read(2) ¤¬ÊÖ¤ë¤Î¤Ï¡¢¾¯¤Ê¤¯¤È¤â 1¥Ð¥¤¥È¤Î¥Ç¡¼¥¿¤¬ÍøÍѲÄǽ¤È¤Ê¤Ã¤¿»þÅÀ¡¢ ¤Þ¤¿¤Ï¥¿¥¤¥Þ¤¬»þ´ÖÀÚ¤ì¤È¤Ê¤Ã¤¿»þÅÀ¤Ç¤¢¤ë¡£ ÆþÎϤ¬Á´¤¯¤Ê¤¯¥¿¥¤¥Þ¤¬»þ´ÖÀÚ¤ì¤È¤Ê¤Ã¤¿¾ì¹ç¡¢ read(2) ¤Ï 0 ¤òÊÖ¤¹¡£
- *
- MIN > 0; TIME > 0: TIME ¤Ï¥¿¥¤¥Þ¤Î¾å¸Â¤òµ¬Äꤷ¡¢Ã±°Ì¤Ï 1/10 ÉäǤ¢¤ë¡£ ÆþÎϤκǽé¤Î¥Ð¥¤¥È¤¬ÍøÍѲÄǽ¤Ë¤Ê¤Ã¤¿¸å¤Ï¡¢ ¿·¤¿¤Ë 1¥Ð¥¤¥È¼õ¿®¤¹¤ëÅ٤˥¿¥¤¥Þ¤¬¥ê¥»¥Ã¥È¤µ¤ì¤ë¡£ read(2) ¤¬ÊÖ¤ë¤Î¤Ï¡¢MIN ¥Ð¥¤¥È¤«Í×µá¥Ð¥¤¥È¿ô¤Î¤¦¤Á¾¯¤Ê¤¤Êý¤Þ¤ÇÆɤ߽Фµ¤ì¤¿»þÅÀ¤«¡¢ ¥Ð¥¤¥È´Ö¥¿¥¤¥Þ¤¬»þ´ÖÀÚ¤ì¤È¤Ê¤Ã¤¿»þÅÀ¤Ç¤¢¤ë¡£ ¤ÏºÇ½é¤Î¥Ð¥¤¥È¤¬ÍøÍѲÄǽ¤Ë¤Ê¤é¤Ê¤¤¤È¥¿¥¤¥Þ¤Ï³«»Ï¤µ¤ì¤Ê¤¤¤Î¤Ç¡¢ ¾¯¤Ê¤¯¤È¤â 1¥Ð¥¤¥È¤ÏÆɤ߹þ¤Þ¤ì¤ë¡£
Raw mode
cfmakeraw() ¤Ï¡¢Ã¼Ëö¤òÀΤΠVersion 7 üËö¥É¥é¥¤¥Ð¤Î "raw" ¥â¡¼¥É¤Î¤è¤¦¤ËÀßÄꤹ¤ë¡£ ÆþÎϤÏʸ»úñ°Ì¤Ë²Äǽ¤Ç¤¢¤ê¡¢¥¨¥³¡¼¤¬Ìµ¸ú¤È¤Ê¤ê¡¢ üËö¤ÎÆþ½ÐÎÏʸ»ú¤ËÂФ¹¤ëÆüì½èÍý¤Ï¤¹¤Ù¤Æ̵¸ú¤È¤Ê¤ë¡£ üËö¤Î°À¤Ï°Ê²¼¤Î¤è¤¦¤ËÀßÄꤵ¤ì¤ë:
termios_p->c_iflag &= ~(IGNBRK | BRKINT | PARMRK | ISTRIP | INLCR | IGNCR | ICRNL | IXON); termios_p->c_oflag &= ~OPOST; termios_p->c_lflag &= ~(ECHO | ECHONL | ICANON | ISIG | IEXTEN); termios_p->c_cflag &= ~(CSIZE | PARENB); termios_p->c_cflag |= CS8;
¥é¥¤¥óÀ©¸æ
tcsendbreak() ¤ÏüËö¤¬ÈóƱ´ü¤Î¥·¥ê¥¢¥ë¥Ç¡¼¥¿Å¾Á÷¤òÍѤ¤¤Æ¤¤¤ë¾ì¹ç¤Ë¡¢ Ϣ³¤·¤¿0¤Î¥Ó¥Ã¥ÈÎó¤ò°ìÄê´Ö³Ö¤ÇžÁ÷¤¹¤ë¡£ duration ¤¬ 0 ¤Î¾ì¹ç¤Ï¡¢0 ¤Î¥Ó¥Ã¥È¤ò 0.25 Éðʾ塢 0.5 Éðʲ¼¤Î´Ö³Ö¤ÇžÁ÷¤¹¤ë¡£ duration ¤¬ 0 ¤Ç¤Ê¤¤¾ì¹ç¤Ï¡¢ 0 ¤Î¥Ó¥Ã¥È¤ò¼ÂÁõ°Í¸¤Î»þ´Ö´Ö³Ö¤ÇÁ÷¤ë¡£
üËö¤¬ÈóƱ´ü¤Î¥·¥ê¥¢¥ë¥Ç¡¼¥¿Å¾Á÷¥â¡¼¥É¤Ç¤Ê¤¤¾ì¹ç¡¢ tcsendbreak() ¤Ï²¿¤â¹Ô¤ï¤º¤ËÌá¤ë¡£
tcdrain() ¤Ï fd ¤¬¹Ô¤Ã¤Æ¤¤¤ë½ÐÎϤΞÁ÷¤¬´°Î»¤¹¤ë¤Þ¤ÇÂԤġ£
tcflush() ¤Ï fd ¤¬¹Ô¤Ã¤Æ¤¤¤ë¥Ç¡¼¥¿¤Î½ÐÎϤǤޤÀžÁ÷¤µ¤ì¤Æ¤¤¤Ê¤¤¤â¤Î¡¢¤¢¤ë¤¤¤Ï¼õ¿®¤· ¤¿¤¬¤Þ¤ÀÆþÎϤ·¤Æ¤¤¤Ê¤¤¤â¤Î¤òÇË´þ¤¹¤ë¡£¤¤¤º¤ì¤ò¹Ô¤¦¤«¤Ï queue_selector ¤ÎÃͤÇÄê¤á¤ë:
- TCIFLUSH
- ¼õ¿®¤·¤¿¤¬Æɤó¤Ç¤¤¤Ê¤¤¥Ç¡¼¥¿¤ò¥Õ¥é¥Ã¥·¥å¤¹¤ë¡£
- TCOFLUSH
- ½ñ¤¤¤¿¤¬Á÷¿®¤·¤Æ¤¤¤Ê¤¤¥Ç¡¼¥¿¤ò¥Õ¥é¥Ã¥·¥å¤¹¤ë¡£
- TCIOFLUSH
- ¼õ¿®¤·¤¿¤¬Æɤó¤Ç¤¤¤Ê¤¤¥Ç¡¼¥¿¡¦½ñ¤¤¤¿¤¬Á÷¿®¤·¤Æ¤¤¤Ê¤¤¥Ç¡¼¥¿Î¾Êý ¤ò¥Õ¥é¥Ã¥·¥å¤¹¤ë¡£
tcflow() ¤Ï fd ¤Ç»ØÄꤵ¤ì¤¿¥ª¥Ö¥¸¥§¥¯¥È¤Ë¤ª¤±¤ë¥Ç¡¼¥¿¤ÎÁ÷¿®¤¢¤ë¤¤¤Ï¼õ¿®¤ò°ì»þŪ¤ËÃæÃǤ¹¤ë¡£ Á÷¿®¤È¼õ¿®¤Î¤É¤Á¤é¤«¤Ï¡¢ action¤Ç·è¤Þ¤ë:
- TCOOFF
- ½ÐÎϤÎÃæÃÇ¡£
- TCOON
- ÃæÃǤ·¤¿½ÐÎϤκƳ«¡£
- TCIOFF
- STOP ʸ»ú¤ÎÁ÷¿®¡£ STOP ʸ»ú¤ÏüËö¥Ç¥Ð¥¤¥¹¤«¤é¥·¥¹¥Æ¥à¤Ø¤Î¥Ç¡¼¥¿Á÷¿®¤òÄä»ß¤¹¤ë¡£
- TCION
- START ʸ»ú¤ÎÁ÷¿®¡£ START ʸ»ú¤ÏüËö¥Ç¥Ð¥¤¥¹¤«¤é¥·¥¹¥Æ¥à¤Ø¤Î¥Ç¡¼¥¿Á÷¿®¤ò³«»Ï¤¹¤ë¡£
üËö¥Õ¥¡¥¤¥ë¤¬¥ª¡¼¥×¥ó¤µ¤ì¤¿¤È¤¤Î¥Ç¥Õ¥©¥ë¥È¤Ç¤Ï¡¢ ÆþÎϤâ½ÐÎϤâÃæÃǤµ¤ì¤Æ¤¤¤Ê¤¤¡£
¥é¥¤¥ó®ÅÙ
¥Ü¡¼¥ì¡¼¥È´Ø¿ô¤Ï termios ¹½Â¤ÂÎÃæ¤ÎÆþ½ÐÎϥܡ¼¥ì¡¼¥È¤ò ¼èÆÀ¡¢ÀßÄꤹ¤ë¤¿¤á¤ËÄ󶡤µ¤ì¤ë¡£ ÀßÄꤵ¤ì¤¿ÃÍ¤Ï tcsetattr() ¤Î¸Æ¤Ó½Ð¤·¤¬À®¸ù¤¹¤ë¤Þ¤Ç¤Ï͸ú¤Ç¤Ï¤Ê¤¤¡£Â®ÅÙ¤ò B0 ¤ËÀßÄꤷ¤¿¾ì¹ç¡¢¥â¥Ç¥à¤ÏÄä»ß (hang up) ¤¹¤ë¡£ B38400 ¤Ë³ºÅö¤¹¤ë¼ÂºÝ¤Î¥Ó¥Ã¥È¥ì¡¼¥È¤Ï setserial(8) ¤Ç Êѹ¹¤Ç¤¤ë¡£
ÆþÎϤª¤è¤Ó½ÐÎϥܡ¼¥ì¡¼¥È¤Ï termios ¹½Â¤ÂΤ˳ÊǼ¤µ¤ì¤ë¡£
cfgetospeed() ¤Ï termios_p ¤¬¼¨¤·¤Æ¤¤¤ë termios ¹½Â¤ÂΤ˳ÊǼ¤µ¤ì¤Æ¤¤¤ë ½ÐÎϥܡ¼¥ì¡¼¥È¤òÊÖ¤¹¡£
cfsetospeed() ¤Ï termios_p ¤Ç¼¨¤µ¤ì¤Æ¤¤¤ë termios ¹½Â¤ÂÎÃæ¤Î½ÐÎϥܡ¼¥ì¡¼¥È¤ò speed ¤ËÀßÄꤹ¤ë¡£Ãͤϰʲ¼¤Î¤¤¤º¤ì¤«¤Ç¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤:
B0 B50 B75 B110 B134 B150 B200 B300 B600 B1200 B1800 B2400 B4800 B9600 B19200 B38400 B57600 B115200 B2304000¥Ü¡¼ (B0) ¤ÏÀܳ¤ÎÃæÃǤËÍѤ¤¤é¤ì¤ë¡£ B0¤¬»ØÄꤵ¤ì¤¿¾ì¹ç¡¢¥â¥Ç¥à¤ÎÀ©¸æÀþ¤Ï»ÈÍѤµ¤ì¤Ê¤¤¾õÂ֤ˤʤꡢ°ìÈ̤ˤϤ³¤ì¤Ç Àܳ¤¬ÀÚÃǤµ¤ì¤ë¡£ CBAUDEX ¤ÏPOSIX.1¤ÇÄêµÁ¤µ¤ì¤Æ¤¤¤ë®ÅÙ¤ÎÈϰϳ° (57600 ¤ª¤è¤Ó¤½¤ì°Ê¾å) ¤òÀßÄꤹ¤ë¡£¤¹¤Ê¤ï¤ÁÎ㤨¤Ð B57600 & CBAUDEX ¤Ï 0 ¤Ç¤Ê¤¤¡£
cfgetispeed() ¤Ï termios ¹½Â¤ÂÎÃæ¤ÎÆþÎϥܡ¼¥ì¡¼¥È¤òÊÖ¤¹¡£
cfsetispeed() ¤Ï termios ¹½Â¤ÂÎÃæ¤ÎÆþÎϥܡ¼¥ì¡¼¥È¤ò speed ¤ËÀßÄꤹ¤ë¡£ speed ¤Ë¤Ï¡¢¾å½Ò¤Î cfsetospeed() ¤Î¥Ü¡¼¥ì¡¼¥ÈÄê¿ô Bnnn ¤Î¤¤¤º¤ì¤«°ì¤Ä¤ò»ØÄꤷ¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ ÆþÎϥܡ¼¥ì¡¼¥È¤¬ 0 ¤ËÀßÄꤵ¤ì¤¿¾ì¹ç¡¢ÆþÎϥܡ¼¥ì¡¼¥È¤Ï½ÐÎϥܡ¼¥ì¡¼¥È ¤ÈƱ¤¸ÃͤȤʤ롣
cfsetspeed() ¤Ï 4.4BSD ¤Ë¤è¤ë³ÈÄ¥¤Ç¤¢¤ë¡£¤³¤Î´Ø¿ô¤Ï cfsetispeed() ¤ÈƱ¤¸°ú¤¿ô¤ò¤È¤ê¡¢Æþ½ÐÎÏξÊý¤Î®ÅÙ¤òÀßÄꤹ¤ë¡£
ÊÖ¤êÃÍ
cfgetispeed() ¤Ï termios ¹½Â¤ÂÎÃæ¤ÎÆþÎϥܡ¼¥ì¡¼¥È¤òÊÖ¤¹¡£
cfgetospeed() ¤Ï termios ¹½Â¤ÂÎÃæ¤Î½ÐÎϥܡ¼¥ì¡¼¥È¤òÊÖ¤¹¡£
¾¤Î¤¹¤Ù¤Æ¤Î´Ø¿ô¤ÎÌá¤êÃÍ:
- 0
- ¼Â¹ÔÀ®¸ù¡£
- -1
- ¼Â¹Ô¼ºÇÔ¡£ errno ¤¬¥¨¥é¡¼¤Î¼ïÎà¤ò¼¨¤¹¡£
tcsetattr() ¤Ï ¤Ê¤ó¤é¤«¤Î Êѹ¹Í׵᤬À®¸ù¤·¤¿¾ì¹ç¤ËÀ®¸ù¤òÊÖ¤¹¤³¤È¤ËÃí°Õ¡£ ½¾¤Ã¤Æ¡¢Ê£¿ô¤ÎÊѹ¹¤ò¹Ô¤Ã¤¿¾ì¹ç¤Ë¤Ï¡¢°ú¤Â³¤¤¤Æ tcgetattr() ¤ò¸Æ¤Ó½Ð¤·¤ÆÁ´¤Æ¤ÎÊѹ¹¤¬¼Â¹Ô¤µ¤ì¤Æ¤¤¤ë¤«¤ò³Îǧ¤¹¤ëɬÍפ¬¤¢¤ë¤«¤â¤·¤ì¤Ê¤¤¡£
Ãí°Õ
Unix V7 ¤È¤½¤Î¸å¤Î¤¤¤¯¤Ä¤«¤Î¥·¥¹¥Æ¥à¤Ç¤Ï¡¢¥Ü¡¼¥ì¡¼¥È¤Î 14 ¸Ä¤Î¥ê¥¹¥È¤Ç¤¢¤ë B0, ..., B9600 ¤Î¸å¤í¤Ë EXTA, EXTB ("External A" ¤È "External B") ¤Î 2 ¤Ä¤ò Äɲ䷤Ƥ¤¤ë¡£ ¿¤¯¤Î¥·¥¹¥Æ¥à¤Ç¤Ï¤µ¤é¤Ë¹â®¤Ê¥Ü¡¼¥ì¡¼¥È¤Î¤¿¤á¤Ë¥ê¥¹¥È¤ò³ÈÄ¥¤·¤Æ¤¤¤ë¡£tcsendbreak() ¤Ç duration ¤Ë 0 °Ê³°¤ò»ØÄꤷ¤¿¾ì¹ç¤Î¸ú²Ì¤ÏÍÍ¡¹¤Ç¤¢¤ë¡£ SunOS ¤Ï duration*N ÉäΥ֥졼¥¯¤òµ¬Äꤷ¤Æ¤¤¤ë¡£¤³¤³¤Ç N ¤Ï 0.25 °Ê¾å 0.5 ̤Ëþ¤Ç¤¢¤ë¡£ Linux, AIX, DU, Tru64 ¤Ï duration ¥ß¥êÉäΥ֥졼¥¯¤òÁ÷¿®¤¹¤ë¡£ FreeBSD, NetBSD, HP-UX, MacOS ¤Ï duration ¤ÎÃͤò̵»ë¤¹¤ë¡£ Solaris ¤È Unixware ¤Ç¤Ï¡¢Èó¥¼¥í¤Î duration ¤ò»ØÄꤷ¤¿ tcsendbreak() ¤Î¿¶¤ëÉñ¤¤¤Ï tcdrain() ¤ÈƱÍͤǤ¢¤ë¡£
´ØÏ¢¹àÌÜ
stty(1), console_ioctl(4), tty_ioctl(4), feature_test_macros(7), setserial(8)Contenus ©2006-2024 Benjamin Poulain
Design ©2006-2024 Maxime Vantorre