uv_tty_t --- TTY句柄

TTY句柄代表对终端的一个流。

uv_tty_tuv_stream_t 的一个 '子类型' 。

数据类型

uv_tty_t

TTY句柄类型。

uv_tty_mode_t

1.2.0 新版功能.

TTY模式类型:

typedef enum {
    /* 初始/正常终端模式 */
    UV_TTY_MODE_NORMAL,
    /* 原始输入模式(在Windows上,也启用了ENABLE_WINDOW_INPUT) */
    UV_TTY_MODE_RAW,
    /* 用于IPC的二进制安全的I/O模式(仅Unix) */
    UV_TTY_MODE_IO
} uv_tty_mode_t;

公共成员

N/A

参见

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上这个函数将会使用 ttyname_r(3) 决定终端文件描述符的路径, 打开它,如果被传递的文件描述符指向一个TTY再使用它。 这允许libuv将TTY放入非阻塞模式而不影响共享这个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: 版更改: 尝试以一个指向一个文件的文件描述符初始化一个TTY流在UNIX上返回 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() 中间调用它的时候。

int uv_tty_get_winsize(uv_tty_t* handle, int* width, int* height)

获取当前的窗口大小。 成功时返回0。

参见

uv_stream_t 的API函数也适用。