uv_pipe_t --- 管道句柄

管道句柄对Unix上的本地域套接字和Windows上的有名管道提供一个抽象。

uv_pipe_tuv_stream_t 的一个 '子类型' 。

数据类型

uv_pipe_t

管道句柄类型。

公共成员

int uv_pipe_t.ipc

是否这个管道适合在不同进程间传递句柄。

参见

uv_stream_t 的成员也适用。

API

int uv_pipe_init(uv_loop_t* loop, uv_pipe_t* handle, int ipc)

初始化一个管道句柄。 ipc 参数是一个布尔值指明是否管道将用于在不同进程间传递句柄。

int uv_pipe_open(uv_pipe_t* handle, uv_file file)

打开一个已存在的文件描述符或者句柄作为一个管道。

在 1.2.1 版更改: 文件描述符设为非阻塞模式。

注解

被传递的文件描述符或句柄没有类型检查,但是需要它代表一个合法的管道。

int uv_pipe_bind(uv_pipe_t* handle, const char* name)

绑定管道到一个文件路径(Unix)或者名字(Windows)。

注解

Unix上的路径被截取到 sizeof(sockaddr_un.sun_path) 字节,通常在 92 到 108 字节之间。

void uv_pipe_connect(uv_connect_t* req, uv_pipe_t* handle, const char* name, uv_connect_cb cb)

连接到Unix域套接字或者有名管道。

注解

Unix上的路径被截取到 sizeof(sockaddr_un.sun_path) 字节,通常在 92 到 108 字节之间。

int uv_pipe_getsockname(const uv_pipe_t* handle, char* buffer, size_t* size)

获取Unix域套接字或者有名管道的名字。

必须提供一个预分配的缓冲区。 size参数存有缓冲区的大小并设为在输出上写到缓冲区的字节数。 如果缓冲区不够大,将返回 UV_ENOBUFS 并且这个参数将包含需要的大小。

在 1.3.0 版更改: 返回的长度不再包括终止的空字节,且缓冲区不以空字节终止。

int uv_pipe_getpeername(const uv_pipe_t* handle, char* buffer, size_t* size)

获取被句柄连接的Unix域套接字或者有名管道的名字。

必须提供一个预分配的缓冲区。 size参数存有缓冲区的大小并设为在输出上写到缓冲区的字节数。 如果缓冲区不够大,将返回 UV_ENOBUFS 并且这个参数将包含需要的大小。

1.3.0 新版功能.

void uv_pipe_pending_instances(uv_pipe_t* handle, int count)

设置当管道服务器等待连接时未处理的管道实例句柄的数目。

注解

这个设置只应用于Windows。

int uv_pipe_pending_count(uv_pipe_t* handle)
uv_handle_type uv_pipe_pending_type(uv_pipe_t* handle)

用来通过IPC管道接收句柄。

首先——调用 uv_pipe_pending_count() , 如果 > 0 则初始化给定 type 的一个句柄, 通过 uv_pipe_pending_type() 返回再调用 uv_accept(pipe, handle)

参见

uv_stream_t 的API函数也适用。

int uv_pipe_chmod(uv_pipe_t* handle, int flags)

修改管道的权限,允许它被不同用户运行的进程访问。 使得管道被所有用户可写和可读。 模式可以是 UV_WRITABLEUV_READABLEUV_WRITABLE | UV_READABLE 。 这个函数是阻塞的。

1.16.0 新版功能.