TCGETATTR(3V) — NEWS-OS Programmer’s Manual
名称
tcgetattr, tcsetattr − 端末属性の取得と設定
形式
#include <termios.h>
int tcgetattr(fd, termios_p)
int fd;
struct termios ∗termios_p;
int tcsetattr(fd, optional_actions, termios_p)
int fd;
int optional_actions;
struct termios ∗termios_p;
解説
これらの関数は、非同期通信ポートをコントロールするための 汎用端末インターフェースを提供します。 より詳しい端末インターフェースについては、 termio(4V) を参照してください。 そのセクションには、同様の機能を実現するための ioctl の記述もあります。しかし、 ioctl よりここで述べるインターフェースを使用するようお薦めします。
これら関数は、引き数として termios 構造体へのポインタ termios_p を使います。
この構造体は次のようなメンバを含んでいます。
tcflag_tc_iflag;/∗ input modes ∗/
tcflag_tc_oflag;/∗ output modes ∗/
tcflag_tc_cflag;/∗ control modes ∗/
tcflag_tc_lflag;/∗ line discipline modes ∗/
cc_tc_cc[NCCS];/∗ control characters ∗/
この構造体のメンバの詳細については、 termio(4V) にあります。
tcgetattr は、 fd によって参照されるもののパラメータを termios_p によって指定される termios 構造体に格納します。 この関数は、バックグラウンドプロセスから呼ばれることがありますが、 端末属性はフォアグラウンドプロセスによって変更されることがあります。
tcsetattr は、 termip_p によって指定される termios 構造体 から端末のパラメータに次のような値をセットします (ハードウェアのサポートがないと、これは機能しません)。
• optional_actions が TCSANOW の時は、変更は即座に行われます。
• optional_actions が TCSADRAIN の時は、 fd に書き込まれたすべての出力が転送され、 なくなってから(移動してから)変更が行われます。 この付加機能はパラメータの変更が出力に影響を与えるときに使われます。
• optional_actions が TCSAFLUSH の時は、 fd に書き込まれたすべての出力が転送されたのちに変更が行われます。 このとき変更が行われる前に受け取った入力で まだ読み込まれていなかったものはすべて捨てられます。
optional_actions で使用するシンボル定数は、 <sys/termios.h> に定義されています。
リターン値
すべての関数は、成功の時は 0 を返します。 失敗の時は、−1 を返し、エラー番号を errno にセットします。
エラー
EBADF fd が正しいファイルディスクリプタではない。
ENOTTY fd のファイルが端末ではない。
tcsetattr により発生するエラー
EINVAL 引数 optional_actions が正しい値ではない。
termios 構造体のある属性をサポートされていない値に変更しようとした。
関連事項
NEWS-OSRelease 4.2.1R