ボーレートの設定

MacOSXでは以下のようなc_cflagでのボーレートの設定は出来ない。
cfsetispeed と cfsetospeed を使う方法なら大丈夫。

#define BAUDRATE B38400
/* BAUDRATE: ボーレートの設定.cfsetispeed と cfsetospeed も使用できる.*/
newtio.c_cflag = BAUDRATE | CRTSCTS | CS8 | CLOCAL | CREAD;

http://osaka-sandai.www.linux.or.jp/JF/JFdocs/Serial-Programming-HOWTO-3.html

MacOSXではというよりはPOSIXではということか。

Manpage of TERMIOS
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 といった独立したフィールドを使うものもある。)

http://www.linux.or.jp/JM/html/LDP_man-pages/man3/termios.3.html