tcsendbreak() - 端末への中断条件の送信

標準

標準/拡張機能 C/C++ 依存項目

POSIX.1
XPG4
XPG4.2
Single UNIX Specification、バージョン 3

両方  

形式

#define _POSIX_SOURCE
#include <termios.h>

int tcsendbreak(int fildes, int duration);

機能説明

非同期逐次データ伝送を使用している端末 (fildes に 指示された) に中断条件を送信します。tcsendbreak() は、指定された duration に対して ゼロ・ビットの連続ストリームを送信します。tcsendbreak() は、BREAK を行に送信する通常の方法です。

tcsendbreak() が疑似端末に対して発行されると、この関数は無効に なります。

tcsendbreak() が、呼び出し元の制御端末に対して バックグラウンド・プロセス・グループから呼び出されると、プロセスが SIGTTOU を処理している方法によっては、SIGTTOU シグナル を生成できます。

SIGTTOU の処理 システムの動作
デフォルトまたはシグナル・ハンドラー SIGTTOU シグナルが生成され、関数は実行されません。 tcsendbreak() は -1 を戻し、errno を EINTR に設定します。
無視またはブロック SIGTTOU シグナルは送信されず、関数は正常に継続します。

戻り値

正常に実行された場合、tcsendbreak() は 0 を戻します。

正常に実行されなかった場合、tcsendbreak() は -1 を戻して、errno を次のいずれかの 値に設定します。
エラー・コード
説明
EBADF
fildes が、有効なオープン・ファイル記述子ではありません。
EINTR
シグナルが tcsendbreak() に割り込みました。
EIO
関数を発行するプロセスのプロセス・グループは孤立した バックグラウンド・プロセス・グループで、関数を発行する プロセスは SIGTTOU を無視またはブロックしていません。
ENOTTY
fildes は、端末と関連していません。

CELEBT08
⁄* CELEBT08

   This example breaks terminal transmission.

 *⁄
#define _POSIX_SOURCE
#include <stdio.h>
#include <termios.h>
#include <unistd.h>

main() {
  if (tcsendbreak(STDIN_FILENO, 100) != 0)
    perror("tcsendbreak() error");
  else
    puts("break sent");
}

関連情報