uv_tty_t — TTYハンドル¶
TTYハンドルは、コンソール用のストリームを表します。
uv_tty_tは、次の型の「サブクラス」です: uv_stream_t。
データ型¶
-
type uv_tty_t¶
TTYハンドルの型です。
-
enum uv_tty_mode_t¶
バージョン1.2.0で追加。
TTYモードの型:
typedef enum { /* Initial/normal terminal mode */ UV_TTY_MODE_NORMAL, /* * Raw input mode (On Windows, ENABLE_WINDOW_INPUT is also enabled). * May become equivalent to UV_TTY_MODE_RAW_VT in future libuv versions. */ UV_TTY_MODE_RAW, /* Binary-safe I/O mode for IPC (Unix-only) */ UV_TTY_MODE_IO, /* Raw input mode. On Windows ENABLE_VIRTUAL_TERMINAL_INPUT is also set. */ UV_TTY_MODE_RAW_VT } uv_tty_mode_t;
-
enum uv_tty_vtermstate_t¶
コンソールの仮想端末モードの型:
typedef enum { /* * The console supports handling of virtual terminal sequences * (Windows10 new console, ConEmu) */ UV_TTY_SUPPORTED, /* The console cannot process virtual terminal sequences. (Legacy * console) */ UV_TTY_UNSUPPORTED } uv_tty_vtermstate_t
公開メンバー¶
該当なし
関連項目
次の型のuv_stream_tメンバーも適用されます。
API¶
-
int uv_tty_init(uv_loop_t *loop, uv_tty_t *handle, uv_file fd, int unused)¶
指定したファイル記述子で、新しいTTYストリームを初期化します。通常、ファイル記述子は次のいずれかです。
0 = stdin
1 = stdout
2 = stderr
Unixでは、渡したファイル記述子がTTYを指す場合、この関数は、ttyname_r(3)で端末のファイル記述子のパスを調べ、その端末を開いて使います。これにより、同じTTYを共有する他のプロセスへ影響を与えずに、libuvがTTYを非ブロッキングモードにできます。
この関数は、ioctlのTIOCGPTNやTIOCPTYGNAMEをサポートしないシステム、たとえばOpenBSDやSolarisでは、スレッドセーフではありません。
注記
TTYを再度開くことに失敗した場合、libuvはブロッキング書き込みへ切り替えます。
バージョン1.23.1での変更: 次のパラメーター、readableは使わず、無視するようになりました。現在は、適切な値をカーネルから自動検出します。
バージョン1.9.0での変更: TTYのパスを、ttyname_r(3)で調べるようになりました。以前のlibuvでは、代わりに/dev/ttyを開いていました。
バージョン1.5.0での変更: UNIXでは、ファイルを指すファイル記述子でTTYストリームを初期化しようとすると、UV_EINVALを返すようになりました。
-
int uv_tty_set_mode(uv_tty_t *handle, uv_tty_mode_t mode)¶
バージョン1.2.0での変更: モードを、次の型の値で指定するようになりました:
uv_tty_mode_t。指定した端末モードでTTYを設定します。
-
int uv_tty_reset_mode(void)¶
プログラムが終了するときに呼び出します。次のプロセスが使えるよう、TTYの設定を既定値へ戻します。
この関数はUnixでは非同期シグナルセーフですが、次の関数の実行中に呼び出した場合は、エラーコード
UV_EBUSYで失敗する可能性があります。該当する関数は、uv_tty_set_mode()です。
関連項目
次の型のuv_stream_tAPI関数も適用されます。
-
void uv_tty_set_vterm_state(uv_tty_vtermstate_t state)¶
コンソールの仮想端末シーケンスをlibuvとコンソールのどちらが処理するかを制御します。特に、ConEmuでANSI X3.64とXtermの256色を有効にするときに役立ちます。それ以外では、通常、Windows10のコンソールを自動検出します。
この関数はWindowsだけで意味があります。Unixでは何も通知せずに無視します。
バージョン1.33.0で追加。
-
int uv_tty_get_vterm_state(uv_tty_vtermstate_t *state)¶
コンソールの仮想端末シーケンスを、現在libuvとコンソールのどちらが処理しているかを取得します。
この関数はUnixでは実装されておらず、
UV_ENOTSUPを返します。バージョン1.33.0で追加。