uv_pipe_t
--- 管道句柄¶
管道句柄对Unix上的本地域套接字和Windows上的有名管道提供一个抽象。
uv_pipe_t
是 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。
-
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函数也适用。