TCSENDBREAK(3V) — NEWS-OS Programmer’s Manual
名称
tcsendbreak, tcdrain, tcflush, tcflow − 端末の回線制御
形式
#include <termios.h>
int tcsendbreak(fd, duration)
int fd;
int duration;
int tcdrain(fd)
int fd;
int tcflush(fd, queue_selector)
int fd;
int queue_selector;
int tcflow(fd, action)
int fd;
int action;
解説
これらの関数は、非同期通信ポートをコントロールするための 汎用端末インターフェースを提供します。 より詳しい端末インターフェースについては、 termio(4V) を参照してください。 そのセクションには、同様の機能を実現するための ioctl の記述もあります。しかし、 ioctl よりここで述べるインターフェースを使用するようお薦めします。
もし、端末が非同期シリアルデータ転送を使っている場合、 tcsendbreak は指定された時間、値が 0 となる連続したビットを転送します。 ここで、 duration が 0 のとき、 tcsendbreak は 0.25 秒以上 0.5 秒以下、0 を値とするビットを送りだします。 duration が 0 でないときは duration∗N 秒間 0 を値とするビットを転送します。 ただし、 N は 0.25 以上 0.5 未満の値です。
端末が非同期シリアルデータ転送を使っていないときは、 tcsendbreak は何もせずに返ってきます。
tcdrain は、 fd に書き込まれたすべての出力が転送されるまで待ちます。
tcflush は、 fd に書き込まれたデータでまだ転送されていないものや、 受信したデータでまだ読み込まれていないものを queue_selector の値にしたがって捨てます。
• queue_selector が TCIFLUSH のときは、 受信データのうち読み込まれていないものをフラッシュします。
• queue_selector が TCOFLUSH のときは、 書き込まれたデータのうちまだ転送されていないものをフラッシュします。
• queue_selector が TCIOFLUSH のときは、 受信データのうちまだ読み込まれていないもの、 送信データのうちまだ転送されていないものの両方をフラッシュします。
tcflow は、 action の値に従って、 fd に対する送信データまたは受信データをサスペンドします。
• action が TCOOFF のとき、出力をサスペンドします。
• action が TCOON のとき、出力を再スタートします。
• action が TCIOFF のとき、システムは STOP 文字を送信します。 これにより、端末装置がシステムへデータを送信するのを停止させます。 (termio(4V) 参照)
• action が TCION のとき、システムは START 文字を送信します。 これにより、端末装置がシステムへデータを送信するのを開始させます。 (termio(4V) 参照)
端末ファイルのオープン時のデフォルトは、 入出力ともにサスペンド状態ではありません。
queue_selector と action で使用するシンボル定数は termios.h に定義されています。
リターン値
すべての関数は、成功の時は 0 を返します。 失敗の時は、−1 を返し、エラー番号を errno にセットします。
エラー
EBADF fd が正しいファイルディスクリプタではない。
ENOTTY fd のファイルが端末ではない。
EINTR シグナルで tcdrain が中断させられた。
EINVAL 端末がこの機能をサポートしていない。
EINVAL 引数 queue_selector または引数 action が正しい値ではない。
関連事項
NEWS-OSRelease 4.2.1R