[Armadillo:00677] Re: /dev/ttyAM1 をrawで0x0dで終わらせたい

Yasushi SHOJI email@hidden
2005年 11月 26日 (土) 15:49:18 JST


At Sat, 26 Nov 2005 15:42:14 +0900,
yashi wrote:
> 
> At Fri, 25 Nov 2005 13:27:59 +0900,
> Akira Ishimatsu wrote:
> [...]
> > rawモードのCRLF変換機能は受信だけなのですね
> 
> ってことはないはずです。実際に CRLFを送っていませんか? rawモードはほ
> とんど変更*しない*モードですから。

ちょっと説明が変でした。rawモードは manpage termios(3)から

       cfmakeraw() sets the terminal attributes as follows:
                   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;

とすることですから、受信だけの機能ということはありません。受信側、送信
側ともにフラグの変更が行われていることが確認できると思います。

rawモードでなくても良いのであれば、output側でも

       OCRNL  Map CR to NL on output.
       ONLCR  (XSI) Map NL to CR-NL on output.
       ONLRET Don't output CR.

などのflagを使うことで、CRやNLの変更を行なうことができます。変更するよ
うにするために、これは rawモードとしては正しくないことになります。
--
           yashi




armadillo メーリングリストの案内