Nvim :help
页面,由 生成 于 来源, 使用 tree-sitter-vimdoc 解析器。
uv
模块,但可以在其他 Lua 环境中使用。local uv = vim.uv
local server = uv.new_tcp()
server:bind("127.0.0.1", 1337)
server:listen(128, function (err)
assert(not err, err)
local client = uv.new_tcp()
server:accept(client)
client:read_start(function (err, chunk)
assert(not err, err)
if chunk then
client:write(chunk)
else
client:shutdown()
client:close()
end
end)
end)
print("TCP server listening at 127.0.0.1 port 1337")
uv.run() -- an explicit run call is necessary outside of luvit
uv
。该模块主要由函数组成,其名称与其原始 libuv 版本相对应。例如,libuv 函数 uv_tcp_bind
在 uv.tcp_bind() 中有一个 luv 版本。目前,仅存在两个非函数字段:uv.constants
和 uv.errno
,它们是表。uv.tcp_bind(server, host, port)
可以作为 server:bind(host, port)
替代调用。请注意,第一个参数 server
成为对象,并且从函数名中删除了 tcp_
。方法形式在下面存在的地方进行了说明。callable
: 一个 function
;或一个带有 __call
元方法的 table
或 userdata
buffer
: 一个 string
或一个 string
的连续 table
threadargs
: 类型为 nil
、boolean
、number
、string
或 userdata
的可变参数 (...
);参数数量限制为 9 个。uv.errno
公开,但用于处理它们的函数并未公开给 luv 用户。相反,如果遇到内部错误,luv 函数将返回一个可断言的 nil, err, name
元组给调用者。nil
代表性地表示失败err
是一个格式为 {name}: {message}
的字符串{name}
是 uv_err_name
内部提供的错误名称{message}
是 uv_strerror
内部提供的可读消息name
与用于构造 err
的字符串相同fail
伪类型。0
以指示成功,或者有时什么也不返回。这些情况在下面进行了说明。UV_
前缀),其值是一个负数。有关更多详细信息,请参见 Libuv 的“错误常量”页面。 (https://docs.libuv.org/en/v1.x/errors.html#error-constants)E2BIG
: 参数列表过长。EACCES
: 权限被拒绝。EADDRINUSE
: 地址已在使用。EADDRNOTAVAIL
: 地址不可用。EAFNOSUPPORT
: 不支持地址族。EAGAIN
: 资源暂时不可用。EAI_ADDRFAMILY
: 不支持地址族。EAI_AGAIN
: 临时故障。EAI_BADFLAGS
: ai_flags 值无效。EAI_BADHINTS
: hints 的值无效。EAI_CANCELED
: 请求已取消。EAI_FAIL
: 永久故障。EAI_FAMILY
: 不支持 ai_family。EAI_MEMORY
: 内存不足。EAI_NODATA
: 没有地址。EAI_NONAME
: 未知节点或服务。EAI_OVERFLOW
: 参数缓冲区溢出。EAI_PROTOCOL
: 解析的协议未知。EAI_SERVICE
: 套接字类型不可用。EAI_SOCKTYPE
: 套接字类型不受支持。EALREADY
: 连接已在进行中。EBADF
: 文件描述符无效。EBUSY
: 资源繁忙或已锁定。ECANCELED
: 操作已取消。ECHARSET
: 无效的 Unicode 字符。ECONNABORTED
: 软件导致连接中止。ECONNREFUSED
: 连接被拒绝。ECONNRESET
: 连接被对等方重置。EDESTADDRREQ
: 需要目标地址。EEXIST
: 文件已存在。EFAULT
: 系统调用参数中的地址无效。EFBIG
: 文件太大。EHOSTUNREACH
: 主机不可达。EINTR
: 系统调用被中断。EINVAL
: 参数无效。EIO
: i/o 错误。EISCONN
: 套接字已连接。EISDIR
: 对目录进行非法操作。ELOOP
: 遇到太多符号链接。EMFILE
: 打开的文件过多。EMSGSIZE
: 消息过长。ENAMETOOLONG
: 名称过长。ENETDOWN
: 网络已关闭。ENETUNREACH
: 网络不可达。ENFILE
: 文件表溢出。ENOBUFS
: 没有可用的缓冲区空间。ENODEV
: 没有此设备。ENOENT
: 没有此文件或目录。ENOMEM
: 内存不足。ENONET
: 机器不在网络上。ENOPROTOOPT
: 协议不可用。ENOSPC
: 设备上没有剩余空间。ENOSYS
: 未实现函数。ENOTCONN
: 套接字未连接。ENOTDIR
: 不是目录。ENOTEMPTY
: 目录不为空。ENOTSOCK
: 对非套接字进行套接字操作。ENOTSUP
: 套接字不支持此操作。EOVERFLOW
: 值太大,无法用于定义的数据类型。EPERM
: 操作不被允许。EPIPE
: 管道已断开。EPROTO
: 协议错误。EPROTONOSUPPORT
: 不支持协议。EPROTOTYPE
: 协议类型与套接字不匹配。ERANGE
: 结果太大。EROFS
: 只读文件系统。ESHUTDOWN
: 传输端点关闭后无法发送。ESPIPE
: 无效的查找。ESRCH
: 没有此进程。ETIMEDOUT
: 连接超时。ETXTBSY
: 文本文件繁忙。EXDEV
: 不允许跨设备链接。UNKNOWN
: 未知错误。EOF
: 文件结尾。ENXIO
: 没有此设备或地址。EMLINK
: 链接过多。ENOTTY
: 设备的 ioctl 不合适。EFTYPE
: 文件类型或格式不合适。EILSEQ
: 非法字节序列。ESOCKTNOSUPPORT
: 不支持套接字类型。integer
string
uv_loop_t
— 事件循环loop_close()
。仅在循环执行完毕且所有打开的句柄和请求已关闭后才调用此函数,否则它将返回 EBUSY
。0
或 fail
mode
: string
或 nil
(默认值:"default"
)"once"
: 轮询 I/O 一次。注意,如果没有任何待处理的回调,此函数将阻塞。完成后返回 false
(没有活动的句柄或请求剩余),或如果预期更多回调(意味着您应该在将来的某个时间再次运行事件循环),则返回 true
。"nowait"
: 轮询 I/O 一次,但如果没有任何待处理的回调,则不阻塞。完成后返回 false
(没有活动的句柄或请求剩余),或如果预期更多回调(意味着您应该在将来的某个时间再次运行事件循环),则返回 true
。boolean
或 fail
uv.run()
,但如果您直接使用 luv 绑定,则需要在注册初始事件回调集后调用它以启动事件循环。option
: string
...
: 取决于 option
,见下文"block_signal"
: 在轮询新事件时阻塞信号。loop_configure() 的第二个参数是信号名称(作为小写字符串)或信号编号。此操作目前仅针对 "sigprof"
信号实现,以在使用采样分析器时抑制不必要的唤醒。请求其他信号将以 EINVAL
失败。"metrics_idle_time"
: 累积事件循环在事件提供者中花费的空闲时间量。此选项对于使用 metrics_idle_time()
是必需的。uv.loop_configure("block_signal", "sigprof")
0
或 fail
ENOSYS
错误的准备;这意味着循环选项不受平台支持。nil
。string
或 nil
true
;否则返回 false
。boolean
或 fail
uv.run("nowait")
结合使用,在一个线程中轮询并在另一个线程中运行事件循环的回调integer
或 nil
integer
integer
callback
: callable
callback
将对每个句柄执行。-- Example usage of uv.walk to close all handles that
-- aren't already closing.
uv.walk(function (handle)
if not handle:is_closing() then
handle:close()
end
end)
uv_req_t
— 基本请求uv_req_t
是所有 libuv 请求类型的基本类型。req:cancel()
0
或 fail
req:get_type()
string, integer
uv_handle_t
— 基本句柄uv_handle_t
是所有 libuv 句柄类型的基本类型。此处定义的所有 API 函数都适用于任何句柄类型。handle:is_active()
true
,如果句柄处于非活动状态,则返回 false
。“活动”的含义取决于句柄的类型boolean
或 fail
handle:is_closing()
true
,否则返回 false
。boolean
或 fail
handle:close([callback])
callback
: callable
或 nil
callback
将在此调用之后异步调用。必须在释放内存之前对每个句柄调用此函数。callback
仍将推迟到事件循环的下一次迭代。这为您提供了一个机会来释放与句柄关联的任何资源。uv_connect_t
或 uv_write_t
)会被取消,它们的回调会异步调用 ECANCELED
。handle:ref()
handle:unref()
handle:has_ref()
true
,否则返回 false
。boolean
或 fail
handle:send_buffer_size([size])
size
: integer
或 nil
(默认值:0
)size
(或为 0
),则将返回当前发送缓冲区大小;否则,将使用 size
设置新的发送缓冲区大小。integer
或 fail
(如果 size
为 nil
或 0
)0
或 fail
(如果 size
不为 nil
且不为 0
)handle:recv_buffer_size([size])
size
: integer
或 nil
(默认值:0
)size
(或为 0
),则将返回当前发送缓冲区大小;否则,将使用 size
设置新的发送缓冲区大小。integer
或 fail
(如果 size
为 nil
或 0
)0
或 fail
(如果 size
不为 nil
且不为 0
)handle:fileno()
EINVAL
失败。EBADF
。integer
或 fail
handle:get_type()
string, integer
uv_timer_t
— 定时器句柄uv_timer_t 用户数据
或 失败
-- Creating a simple setTimeout wrapper
local function setTimeout(timeout, callback)
local timer = uv.new_timer()
timer:start(timeout, 0, function ()
timer:stop()
timer:close()
callback()
end)
return timer
end
-- Creating a simple setInterval wrapper
local function setInterval(interval, callback)
local timer = uv.new_timer()
timer:start(interval, interval, function ()
callback()
end)
return timer
end
-- And clearInterval
local function clearInterval(timer)
timer:stop()
timer:close()
end
timer:start(timeout, repeat, callback)
timer
: uv_timer_t 用户数据
timeout
: 整数
repeat
: 整数
callback
: callable
timeout
和 repeat
单位为毫秒。timeout
为零,则回调将在下一次事件循环迭代时触发。如果 repeat
非零,则回调将在 timeout
毫秒后首次触发,然后每隔 repeat
毫秒重复触发一次。0
或 fail
timer:stop()
timer
: uv_timer_t 用户数据
0
或 fail
timer:again()
timer
: uv_timer_t 用户数据
EINVAL
。0
或 fail
timer:set_repeat(repeat)
timer
: uv_timer_t 用户数据
repeat
: 整数
timer:get_repeat()
timer
: uv_timer_t 用户数据
integer
timer:get_due_in()
timer
: uv_timer_t 用户数据
integer
uv_prepare_t
— 预备句柄local prepare = uv.new_prepare()
prepare:start(function()
print("Before I/O polling")
end)
uv_prepare_t 用户数据
prepare:start(callback)
prepare
: uv_prepare_t 用户数据
callback
: callable
0
或 fail
prepare:stop()
prepare
: uv_prepare_t 用户数据
0
或 fail
uv_check_t
— 检查句柄local check = uv.new_check()
check:start(function()
print("After I/O polling")
end)
uv_check_t 用户数据
check:start(callback)
check
: uv_check_t 用户数据
callback
: callable
0
或 fail
check:stop()
check
: uv_check_t 用户数据
0
或 fail
uv_idle_t
— 空闲句柄local idle = uv.new_idle()
idle:start(function()
print("Before I/O polling, no blocking")
end)
uv_idle_t 用户数据
idle:start(callback)
idle
: uv_idle_t 用户数据
callback
: callable
0
或 fail
idle:stop()
idle
: uv_idle_t 用户数据
0
或 fail
uv_async_t
— 异步句柄local async
async = uv.new_async(function()
print("async operation ran")
async:close()
end)
async:send()
callback
: callable
...
: threadargs
传递给/从 uv.async_send(async, ...)
uv_async_t 用户数据
或 失败
async:send(...)
async
: uv_async_t 用户数据
...
: threadargs
0
或 fail
uv.async_send(async)
的调用,也就是说,并非每次调用它都会产生回调的执行。例如:如果在回调被调用之前连续调用了 5 次 uv.async_send()
,则回调只会调用一次。如果在回调被调用后再次调用 uv.async_send()
,则它将再次被调用。uv_poll_t
— 轮询句柄uv_poll_t
用于任何其他目的;uv_tcp_t、uv_udp_t 等提供了比 uv_poll_t
可以实现的更快速、更可扩展的实现,尤其是在 Windows 上。fd
: 整数
uv_poll_t 用户数据
或 失败
fd
: 整数
uv_poll_t 用户数据
或 失败
poll:start(events, callback)
poll
: uv_poll_t 用户数据
events
: 字符串
或 nil
(默认值:"rw"
)callback
: callable
err
: nil
或 字符串
events
: 字符串
或 nil
events
为:"r"
、"w"
、"rw"
、"d"
、"rd"
、"wd"
、"rwd"
、"p"
、"rp"
、"wp"
、"rwp"
、"dp"
、"rdp"
、"wdp"
或 "rwdp"
,其中 r
为 READABLE
、w
为 WRITABLE
、d
为 DISCONNECT
,p
为 PRIORITIZED
。一旦检测到事件,回调将被调用,状态设置为 0,事件字段上将设置检测到的事件。0
或 fail
uv.poll_start()
是可以的。这样做将更新正在监视的事件掩码。poll:stop()
poll
: uv_poll_t 用户数据
0
或 fail
uv_signal_t
— 信号句柄-- Create a new signal handler
local signal = uv.new_signal()
-- Define a handler function
uv.signal_start(signal, "sigint", function(signal)
print("got " .. signal .. ", shutting down")
os.exit(1)
end)
uv_signal_t 用户数据
或 失败
信号:开始(信号, 回调)
信号
:uv_signal_t 用户数据
信号
:整数
或 字符串
callback
: callable
信号
:字符串
信号:开始一次(信号, 回调)
信号
:uv_signal_t 用户数据
信号
:整数
或 字符串
callback
: callable
信号
:字符串
0
或 fail
信号:停止()
信号
:uv_signal_t 用户数据
0
或 fail
uv_process_t
— 进程句柄路径
:字符串
选项
:表
(见下文)退出时
:可调用
代码
:整数
信号
:整数
local stdin = uv.new_pipe()
local stdout = uv.new_pipe()
local stderr = uv.new_pipe()
print("stdin", stdin)
print("stdout", stdout)
print("stderr", stderr)
local handle, pid = uv.spawn("cat", {
stdio = {stdin, stdout, stderr}
}, function(code, signal) -- on exit
print("exit code", code)
print("exit signal", signal)
end)
print("process opened", handle, pid)
uv.read_start(stdout, function(err, data)
assert(not err, err)
if data then
print("stdout chunk", stdout, data)
else
print("stdout end", stdout)
end
end)
uv.read_start(stderr, function(err, data)
assert(not err, err)
if data then
print("stderr chunk", stderr, data)
else
print("stderr end", stderr)
end
end)
uv.write(stdin, "Hello World")
uv.shutdown(stdin, function()
print("stdin shutdown", stdin)
uv.close(handle, function()
print("process closed", handle, pid)
end)
end)
options.args
- 命令行参数作为字符串列表。第一个字符串不应是程序的路径,因为这已通过 路径
提供。在 Windows 上,这使用 CreateProcess 将参数连接到字符串中。这可能会导致一些奇怪的错误(有关 Windows 的详细信息,请参见 options.verbatim
)。options.stdio
- 设置将提供给子进程的文件描述符。惯例是前几个条目是 stdin、stdout 和 stderr。(注意:在 Windows 上,只有当子进程使用 MSVCRT 运行时,第三个条目之后的文件描述符才对子进程可用。)options.env
- 为新进程设置环境变量。options.cwd
- 为子进程设置当前工作目录。options.uid
- 设置子进程的用户 ID。options.gid
- 设置子进程的组 ID。options.verbatim
- 如果为真,则在将参数列表转换为命令行字符串时,不要将任何参数包装在引号中,也不执行任何其他转义。此选项仅在 Windows 系统上有意义。在 Unix 上,它被静默忽略。options.detached
- 如果为真,则以分离状态生成子进程 - 这将使其成为进程组组长,并且实际上将使子进程在父进程退出后继续运行。请注意,除非父进程在子进程的进程句柄上调用 uv.unref(),否则子进程仍将使父进程的事件循环保持活动状态。options.hide
- 如果为真,则隐藏通常创建的子进程控制台窗口。此选项仅在 Windows 系统上有意义。在 Unix 上,它被静默忽略。options.stdio
条目可以采用多种形式。nil
占位符意味着在子进程中忽略该 fd。退出时
。uv_process_t 用户数据
, 整数
进程:杀死(信号)
进程
:uv_process_t 用户数据
信号
:整数
或 字符串
或 nil
(默认:sigterm
)0
或 fail
pid
:整数
信号
:整数
或 字符串
或 nil
(默认:sigterm
)0
或 fail
进程:获取_pid()
进程
:uv_process_t 用户数据
integer
uv_stream_t
— 流句柄流:关闭([回调])
uv_shutdown_t 用户数据
或 失败
流:监听(待处理, 回调)
待处理
指示内核可能排队的连接数,与 listen(2)
相同。收到新的传入连接时,将调用回调。0
或 fail
流:接受(客户端流)
0
或 fail
server:listen(128, function (err)
local client = uv.new_tcp()
server:accept(client)
end)
流:读开始(回调)
0
或 fail
stream:read_start(function (err, chunk)
if err then
-- handle read error
elseif chunk then
-- handle data
else
-- handle disconnect
end
end)
流:读停止()
0
或 fail
流:写入(数据, [回调])
数据
可以是 Lua 字符串或字符串表。如果传递了表,则 C 后端将使用 writev 在单个系统调用中发送所有字符串。回调
用于了解写入何时完成。uv_write_t 用户数据
或 失败
流:写入2(数据, 发送句柄, [回调])
数据
:缓冲区
callback
: callable
或 nil
err
: nil
或 字符串
ipc
选项 true
初始化。uv_write_t 用户数据
或 失败
发送句柄
必须是 TCP 套接字或管道,它是服务器或连接(侦听或已连接状态)。绑定套接字或管道将被认为是服务器。stream:try_write(data)
数据
:缓冲区
integer
或 fail
stream:try_write2(data, send_handle)
integer
或 fail
stream:is_readable()
true
,否则返回 false
。boolean
stream:is_writable()
true
,否则返回 false
。boolean
stream:set_blocking(blocking)
blocking
: boolean
0
或 fail
stream:get_write_queue_size()
integer
uv_tcp_t
— TCP 处理程序flags
: string
或 nil
"unix"
、"inet"
、"inet6"
、"ipx"
、"netlink"
、"x25"
、"ax25"
、"atmpvc"
、"appletalk"
或 "packet"
。uv_tcp_t 用户数据
或 失败
tcp:open(sock)
tcp
: uv_tcp_t 用户数据
sock
: integer
0
或 fail
tcp:nodelay(enable)
tcp
: uv_tcp_t 用户数据
enable
: boolean
0
或 fail
tcp:keepalive(enable, [delay])
tcp
: uv_tcp_t 用户数据
enable
: boolean
delay
: integer
或 nil
delay
是以秒为单位的初始延迟,当 enable 为 false
时忽略。0
或 fail
tcp:simultaneous_accepts(enable)
tcp
: uv_tcp_t 用户数据
enable
: boolean
0
或 fail
tcp:bind(host, port, [flags])
tcp
: uv_tcp_t 用户数据
host
: string
port
: integer
flags
: table
或 nil
ipv6only
: boolean
host
应为 IP 地址,而不是域名。任何 flags
都是使用表设置的,该表具有等于 true
或 false
的字段 ipv6only
。uv.tcp_bind()
、uv.listen() 或 uv.tcp_connect() 的 EADDRINUSE
错误。也就是说,成功调用此函数并不能保证对 uv.listen() 或 uv.tcp_connect() 的调用也会成功。0
让操作系统分配一个短暂端口。您可以在以后使用 uv.tcp_getsockname() 查看它。0
或 fail
tcp:getpeername()
tcp
: uv_tcp_t 用户数据
table
或 失败
ip
: string
family
: string
port
: integer
tcp:getsockname()
tcp
: uv_tcp_t 用户数据
table
或 失败
ip
: string
family
: string
port
: integer
tcp:connect(host, port, callback)
tcp
: uv_tcp_t 用户数据
host
: string
port
: integer
callback
: callable
err
: nil
或 字符串
uv_connect_t 用户数据
或 失败
local client = uv.new_tcp()
client:connect("127.0.0.1", 8080, function (err)
-- check error and carry on.
end)
tcp:write_queue_size()
tcp:close_reset([callback])
tcp
: uv_tcp_t 用户数据
callback
: callable
或 nil
uv.tcp_close_reset()
调用。socktype
: string
、integer
或 nil
(默认值:stream
)protocol
: string
、integer
或 nil
(默认值:0)flags1
: table
或 nil
nonblock
: boolean
(默认值:false
)flags2
: table
或 nil
nonblock
: boolean
(默认值:false
)socktype
必须是 "stream"
、"dgram"
、"raw"
、"rdm"
或 "seqpacket"
中的一个。protocol
设置为 0 或 nil 时,它将根据套接字的域和类型自动选择。当 protocol
指定为字符串时,它将使用 getprotobyname(3)
函数查找(例如:"ip"
、"icmp"
、"tcp"
、"udp"
等)。nonblock
: 为 OVERLAPPED
或 FIONBIO
/`O_NONBLOCK` I/O 使用打开指定的套接字句柄。这对于将由 libuv 使用的句柄来说是推荐的,否则通常不建议这样做。AF_UNIX
的 socketpair(2)
。table
或 失败
[1, 2]
: integer
(文件描述符)-- Simple read/write with tcp
local fds = uv.socketpair(nil, nil, {nonblock=true}, {nonblock=true})
local sock1 = uv.new_tcp()
sock1:open(fds[1])
local sock2 = uv.new_tcp()
sock2:open(fds[2])
sock1:write("hello")
sock2:read_start(function(err, chunk)
assert(not err, err)
print(chunk)
end)
uv_pipe_t
— 管道处理程序local pipe = uv.new_pipe(false)
pipe:bind('/tmp/sock.test')
pipe:listen(128, function()
local client = uv.new_pipe(false)
pipe:accept(client)
client:write("hello!\n")
client:close()
end)
ipc
: boolean
或 nil
(默认值:false
)ipc
参数是一个布尔值,指示此管道是否将用于进程之间的句柄传递。uv_pipe_t 用户数据
或 失败
pipe:open(fd)
pipe
: uv_pipe_t 用户数据
fd
: 整数
0
或 fail
pipe:bind(name)
pipe
: uv_pipe_t 用户数据
name
: string
0
或 fail
pipe:connect(name, [callback])
pipe
: uv_pipe_t 用户数据
name
: string
callback
: callable
或 nil
err
: nil
或 字符串
uv_connect_t 用户数据
或 失败
pipe:getsockname()
pipe
: uv_pipe_t 用户数据
string
或 失败
pipe:getpeername()
pipe
: uv_pipe_t 用户数据
string
或 失败
pipe:pending_instances(count)
pipe
: uv_pipe_t 用户数据
count
: integer
pipe:pending_count()
pipe
: uv_pipe_t 用户数据
integer
pipe:pending_type()
pipe
: uv_pipe_t 用户数据
uv.pipe_pending_type()
返回的类型初始化一个句柄,并调用 uv.accept(pipe, handle)
。string
pipe:chmod(flags)
pipe
: uv_pipe_t 用户数据
flags
: string
flags
可以是:"r"
、"w"
、"rw"
或 "wr"
,其中 r
代表 READABLE
,w
代表 WRITABLE
。此函数为阻塞函数。0
或 fail
read_flags
: table
或 nil
nonblock
: boolean
(默认值:false
)write_flags
: table
或 nil
nonblock
: boolean
(默认值:false
)write
fd 并从 read
fd 读取。生成的句柄可以传递给 pipe_open
,与 spawn
一起使用,或用于任何其他目的。nonblock
: 为 OVERLAPPED
或 FIONBIO
/`O_NONBLOCK` I/O 使用打开指定的套接字句柄。这对于将由 libuv 使用的句柄来说是推荐的,否则通常不建议这样做。O_CLOEXEC
标志的 pipe(2)
。table
或 失败
read
: integer
(文件描述符)write
: integer
(文件描述符)-- Simple read/write with pipe_open
local fds = uv.pipe({nonblock=true}, {nonblock=true})
local read_pipe = uv.new_pipe()
read_pipe:open(fds.read)
local write_pipe = uv.new_pipe()
write_pipe:open(fds.write)
write_pipe:write("hello")
read_pipe:read_start(function(err, chunk)
assert(not err, err)
print(chunk)
end)
pipe:pipe_bind(name, flags)
pipe
: uv_pipe_t 用户数据
name
: string
flags
: integer
或 table
或 nil
(默认值:0)type(flags)
为 number
,则它必须为 0
或 uv.constants.PIPE_NO_TRUNCATE
。type(flags)
为 table
,则它必须为 {}
或 { no_truncate = true|false }
。type(flags)
为 nil
,则使用默认值 0
。EINVAL
。0
或 fail
pipe:connect2(name, [flags], [callback])
pipe
: uv_pipe_t 用户数据
name
: string
flags
: integer
或 table
或 nil
(默认值:0)callback
: callable
或 nil
err
: nil
或 字符串
标志
:type(flags)
为 number
,则它必须为 0
或 uv.constants.PIPE_NO_TRUNCATE
。type(flags)
为 table
,则它必须为 {}
或 { no_truncate = true|false }
。type(flags)
为 nil
,则使用默认值 0
。EINVAL
。uv_connect_t 用户数据
或 失败
uv_tty_t
— TTY 句柄-- Simple echo program
local stdin = uv.new_tty(0, true)
local stdout = uv.new_tty(1, false)
stdin:read_start(function (err, data)
assert(not err, err)
if data then
stdout:write(data)
else
stdin:close()
stdout:close()
end
end)
fd
: 整数
readable
: boolean
uv_tty_t userdata
或 fail
tty:set_mode(mode)
tty
: uv_tty_t userdata
mode
: integer
mode
是一个 C 枚举,具有以下值0
或 fail
EBUSY
而失败。0
或 fail
tty:get_winsize()
tty
: uv_tty_t userdata
integer, integer
或 fail
state
: string
"supported"
或 "unsupported"
。"supported"
或 "unsupported"
。ENOTSUP
。string
或 失败
uv_udp_t
— UDP 句柄flags
: table
或 nil
family
: string
或 nil
mmsgs
: integer
或 nil
(默认值:1
)family
必须是以下之一:"unix"
、"inet"
、"inet6"
、"ipx"
、"netlink"
、"x25"
、"ax25"
、"atmpvc"
、"appletalk"
或 "packet"
。mmsgs
确定可以通过 recvmmsg(2)
接收的消息数量(分配的缓冲区大小将能够容纳指定数量的最大大小数据报)。只对支持 recvmmsg(2)
的平台有效。flags
也可以是字符串或整数。当它是一个字符串时,它将被视为上面的 family
键。当它是一个整数时,它将直接用作调用 uv_udp_init_ex
时的 flags
参数。uv_udp_t userdata
或 fail
udp:get_send_queue_size()
integer
udp:get_send_queue_count()
integer
udp:open(fd)
udp
: uv_udp_t userdata
fd
: 整数
0
或 fail
udp:bind(host, port, [flags])
udp
: uv_udp_t userdata
host
: string
port
: number
flags
: table
或 nil
ipv6only
: boolean
reuseaddr
: boolean
flags
都使用包含字段 reuseaddr
或 ipv6only
等于 true
或 false
的表设置。0
或 fail
udp:getsockname()
udp
: uv_udp_t userdata
table
或 失败
ip
: string
family
: string
port
: integer
udp:getpeername()
udp
: uv_udp_t userdata
table
或 失败
ip
: string
family
: string
port
: integer
{udp}
, {multicast_addr}
, {interface_addr}
, {membership}
)udp:set_membership(multicast_addr, interface_addr, membership)
udp
: uv_udp_t userdata
multicast_addr
: string
interface_addr
: string
或 nil
membership
: string
multicast_addr
是要设置成员资格的多播地址。interface_addr
是接口地址。membership
可以是字符串 "leave"
或 "join"
。0
或 fail
{udp}
, {multicast_addr}
, {interface_addr}
, {source_addr}
, {membership}
)udp:set_source_membership(multicast_addr, interface_addr, source_addr, membership)
udp
: uv_udp_t userdata
multicast_addr
: string
interface_addr
: string
或 nil
source_addr
: string
membership
: string
multicast_addr
是要设置成员资格的多播地址。interface_addr
是接口地址。source_addr
是源地址。membership
可以是字符串 "leave"
或 "join"
。0
或 fail
udp:set_multicast_loop(on)
udp
: uv_udp_t userdata
on
: boolean
0
或 fail
udp:set_multicast_ttl(ttl)
udp
: uv_udp_t userdata
ttl
: integer
ttl
是 1 到 255 之间的整数。0
或 fail
udp:set_multicast_interface(interface_addr)
udp
: uv_udp_t userdata
interface_addr
: string
0
或 fail
udp:set_broadcast(on)
udp
: uv_udp_t userdata
on
: boolean
0
或 fail
udp:set_ttl(ttl)
udp
: uv_udp_t userdata
ttl
: integer
ttl
是 1 到 255 之间的整数。0
或 fail
udp:send(data, host, port, callback)
udp
: uv_udp_t userdata
数据
:缓冲区
host
: string
port
: integer
callback
: callable
err
: nil
或 字符串
0.0.0.0
(“所有接口” IPv4 地址)和一个随机端口号。uv_udp_send_t userdata
或 fail
udp:try_send(data, host, port)
udp
: uv_udp_t userdata
数据
:缓冲区
host
: string
port
: integer
integer
或 fail
udp:recv_start(callback)
udp
: uv_udp_t userdata
callback
: callable
err
: nil
或 字符串
数据
:字符串
或 nil
addr
: table
或 nil
ip
: string
port
: integer
family
: string
flags
: table
partial
: boolean
或 nil
mmsg_chunk
: boolean
或 nil
0.0.0.0
(“所有接口”的 IPv4 地址)和一个随机端口号。0
或 fail
udp:recv_stop()
udp
: uv_udp_t userdata
0
或 fail
udp:connect(host, port)
udp
: uv_udp_t userdata
host
: string
port
: integer
uv.udp_connect()
将导致 EISCONN
错误。尝试断开未连接的句柄的连接将返回 ENOTCONN
错误。0
或 fail
uv_fs_event_t
— FS 事件句柄uv_fs_event_t userdata
或 fail
fs_event:start(path, flags, callback)
fs_event
: uv_fs_event_t userdata
路径
:字符串
flags
: table
watch_entry
: boolean
或 nil
(默认:false
)stat
: boolean
或 nil
(默认:false
)recursive
: boolean
或 nil
(默认:false
)callback
: callable
err
: nil
或 字符串
filename
: string
events
: table
change
: boolean
或 nil
rename
: boolean
或 nil
0
或 fail
fs_event:stop()
0
或 fail
fs_event:getpath()
string
或 失败
uv_fs_poll_t
— FS 轮询句柄stat
检测文件何时更改,因此它们可以在 fs 事件句柄无法使用的文件系统上工作。uv_fs_poll_t userdata
或 fail
fs_poll:start(path, interval, callback)
fs_poll
: uv_fs_poll_t userdata
路径
:字符串
interval
: integer
callback
: callable
err
: nil
或 字符串
prev
: table
或 nil
(见 uv.fs_stat
)curr
: table
或 nil
(见 uv.fs_stat
)interval
毫秒检查 path
处的文件是否有更改。0
或 fail
fs_poll:stop()
0
或 fail
fs_poll:getpath()
string
或 失败
uv_fs_t userdata
并异步执行其回调;如果遇到错误,传递给回调的第一个也是唯一的参数将是 err
错误字符串;如果操作成功完成,第一个参数将是 nil
,其余参数将是 FS 调用的结果。readFile
的同步和异步版本(带有简单的错误处理)作为示例local function readFileSync(path)
local fd = assert(uv.fs_open(path, "r", 438))
local stat = assert(uv.fs_fstat(fd))
local data = assert(uv.fs_read(fd, stat.size, 0))
assert(uv.fs_close(fd))
return data
end
local data = readFileSync("main.lua")
print("synchronous read", data)
local function readFile(path, callback)
uv.fs_open(path, "r", 438, function(err, fd)
assert(not err, err)
uv.fs_fstat(fd, function(err, stat)
assert(not err, err)
uv.fs_read(fd, stat.size, 0, function(err, data)
assert(not err, err)
uv.fs_close(fd, function(err)
assert(not err, err)
return callback(data)
end)
end)
end)
end)
end
readFile("main.lua", function(data)
print("asynchronous read", data)
end)
fd
: 整数
callback
: callable
(异步版本)或 nil
(同步版本)err
: nil
或 字符串
success
: boolean
或 nil
close(2)
。boolean
或 fail
uv_fs_t userdata
路径
:字符串
flags
: string
或 integer
mode
: integer
callback
: callable
(异步版本)或 nil
(同步版本)err
: nil
或 字符串
fd
: integer
或 nil
open(2)
。访问 flags
可以是整数,也可以是以下之一:"r"
、"rs"
、"sr"
、"r+"
、"rs+"
、"sr+"
、"w"
、"wx"
、"xw"
、"w+"
、"wx+"
、"xw+"
、"a"
、"ax"
、"xa"
、"a+"
、"ax+"
或 "xa+"
。integer
或 fail
uv_fs_t userdata
CreateFileW
,因此文件始终以二进制模式打开。因此,不支持 O_BINARY
和 O_TEXT
标志。fd
: 整数
size
: integer
offset
: integer
或 nil
callback
: callable
(异步版本)或 nil
(同步版本)err
: nil
或 字符串
数据
:字符串
或 nil
preadv(2)
。返回任何数据。空字符串表示 EOF。offset
为 nil 或省略,则默认为 -1
,表示“使用和更新当前文件偏移量”。offset
>= 0 时,读取操作不会更新当前文件偏移量。string
或 fail
uv_fs_t userdata
路径
:字符串
callback
: callable
(异步版本)或 nil
(同步版本)err
: nil
或 字符串
success
: boolean
或 nil
unlink(2)
。boolean
或 fail
uv_fs_t userdata
fd
: 整数
数据
:缓冲区
offset
: integer
或 nil
callback
: callable
(异步版本)或 nil
(同步版本)err
: nil
或 字符串
bytes
: integer
或 nil
pwritev(2)
。返回写入的字节数。offset
为 nil 或省略,则默认为 -1
,表示“使用和更新当前文件偏移量”。offset
>= 0 时,写入操作不会更新当前文件偏移量。integer
或 fail
uv_fs_t userdata
路径
:字符串
mode
: integer
callback
: callable
(异步版本)或 nil
(同步版本)err
: nil
或 字符串
success
: boolean
或 nil
mkdir(2)
。boolean
或 fail
uv_fs_t userdata
template
: string
callback
: callable
(异步版本)或 nil
(同步版本)err
: nil
或 字符串
path
: string
或 nil
mkdtemp(3)
。string
或 fail
uv_fs_t userdata
template
: string
callback
: callable
(异步版本)或 nil
(同步版本)err
: nil
或 字符串
fd
: integer
或 nil
path
: string
或 nil
mkstemp(3)
。返回临时文件句柄和文件名。integer, string
或 fail
uv_fs_t userdata
路径
:字符串
callback
: callable
(异步版本)或 nil
(同步版本)err
: nil
或 字符串
success
: boolean
或 nil
rmdir(2)
。boolean
或 fail
uv_fs_t userdata
路径
:字符串
callback
: callable
err
: nil
或 字符串
success
: uv_fs_t userdata
或 nil
scandir(3)
,但 API 稍有不同。返回一个句柄,用户可以将其传递给 uv.fs_scandir_next()。uv_fs_t userdata
或 fail
fs
: uv_fs_t userdata
string, string
或 nil
或 fail
路径
:字符串
callback
: callable
(异步版本)或 nil
(同步版本)err
: nil
或 字符串
stat
: table
或 nil
(见下文)stat(2)
。table
或 fail
dev
: integer
mode
: integer
nlink
: integer
uid
: integer
gid
: integer
rdev
: integer
ino
: integer
size
: integer
blksize
: integer
blocks
: integer
flags
: integer
gen
: integer
atime
: table
sec
: integer
nsec
: integer
mtime
: table
sec
: integer
nsec
: integer
ctime
: table
sec
: integer
nsec
: integer
birthtime
: table
sec
: integer
nsec
: integer
type
: string
uv_fs_t userdata
fd
: 整数
callback
: callable
(异步版本)或 nil
(同步版本)err
: nil
或 字符串
stat
: table
或 nil
(见 uv.fs_stat
)fstat(2)
。table
或 fail
(见 uv.fs_stat
)uv_fs_t userdata
路径
:字符串
callback
: callable
(异步版本)或 nil
(同步版本)err
: nil
或 字符串
stat
: table
或 nil
(见 uv.fs_stat
)lstat(2)
。uv_fs_t userdata
路径
:字符串
new_path
: string
callback
: callable
(异步版本)或 nil
(同步版本)err
: nil
或 字符串
success
: boolean
或 nil
rename(2)
。boolean
或 fail
uv_fs_t userdata
fd
: 整数
callback
: callable
(异步版本)或 nil
(同步版本)err
: nil
或 字符串
success
: boolean
或 nil
fsync(2)
。boolean
或 fail
uv_fs_t userdata
fd
: 整数
callback
: callable
(异步版本)或 nil
(同步版本)err
: nil
或 字符串
success
: boolean
或 nil
fdatasync(2)
。boolean
或 fail
uv_fs_t userdata
fd
: 整数
offset
: integer
callback
: callable
(异步版本)或 nil
(同步版本)err
: nil
或 字符串
success
: boolean
或 nil
ftruncate(2)
。boolean
或 fail
uv_fs_t userdata
out_fd
: 整数
in_fd
: 整数
in_offset
: 整数
size
: integer
callback
: callable
(异步版本)或 nil
(同步版本)err
: nil
或 字符串
bytes
: integer
或 nil
sendfile(2)
的有限等效。返回写入的字节数。integer
或 fail
uv_fs_t userdata
路径
:字符串
mode
: integer
callback
: callable
(异步版本)或 nil
(同步版本)err
: nil
或 字符串
permission
: 布尔值
或 nil
access(2)
。Windows 使用 GetFileAttributesW()
。访问 mode
可以是整数,也可以是包含 "R"
或 "W"
或 "X"
的字符串。返回 true
或 false
表示访问权限。boolean
或 fail
uv_fs_t userdata
路径
:字符串
mode
: integer
callback
: callable
(异步版本)或 nil
(同步版本)err
: nil
或 字符串
success
: boolean
或 nil
chmod(2)
。boolean
或 fail
uv_fs_t userdata
fd
: 整数
mode
: integer
callback
: callable
(异步版本)或 nil
(同步版本)err
: nil
或 字符串
success
: boolean
或 nil
fchmod(2)
。boolean
或 fail
uv_fs_t userdata
路径
:字符串
atime
: 数字
mtime
: 数字
callback
: callable
(异步版本)或 nil
(同步版本)err
: nil
或 字符串
success
: boolean
或 nil
utime(2)
。boolean
或 fail
uv_fs_t userdata
fd
: 整数
atime
: 数字
mtime
: 数字
callback
: callable
(异步版本)或 nil
(同步版本)err
: nil
或 字符串
success
: boolean
或 nil
futime(2)
。boolean
或 fail
uv_fs_t userdata
路径
:字符串
atime
: 数字
mtime
: 数字
callback
: callable
(异步版本)或 nil
(同步版本)err
: nil
或 字符串
success
: boolean
或 nil
lutime(2)
。boolean
或 fail
uv_fs_t userdata
路径
:字符串
new_path
: string
callback
: callable
(异步版本)或 nil
(同步版本)err
: nil
或 字符串
success
: boolean
或 nil
link(2)
。boolean
或 fail
uv_fs_t userdata
路径
:字符串
new_path
: string
flags
: 表
, 整数
, 或 nil
dir
: 布尔值
junction
: 布尔值
callback
: callable
(异步版本)或 nil
(同步版本)err
: nil
或 字符串
success
: boolean
或 nil
symlink(2)
。如果省略 flags
参数,则第三个参数将被视为 callback
。boolean
或 fail
uv_fs_t userdata
路径
:字符串
callback
: callable
(异步版本)或 nil
(同步版本)err
: nil
或 字符串
path
: string
或 nil
readlink(2)
。string
或 fail
uv_fs_t userdata
路径
:字符串
callback
: callable
(异步版本)或 nil
(同步版本)err
: nil
或 字符串
path
: string
或 nil
realpath(3)
。string
或 fail
uv_fs_t userdata
路径
:字符串
uid
: 整数
gid
: 整数
callback
: callable
(异步版本)或 nil
(同步版本)err
: nil
或 字符串
success
: boolean
或 nil
chown(2)
。boolean
或 fail
uv_fs_t userdata
fd
: 整数
uid
: 整数
gid
: 整数
callback
: callable
(异步版本)或 nil
(同步版本)err
: nil
或 字符串
success
: boolean
或 nil
fchown(2)
。boolean
或 fail
uv_fs_t userdata
fd
: 整数
uid
: 整数
gid
: 整数
callback
: callable
(异步版本)或 nil
(同步版本)err
: nil
或 字符串
success
: boolean
或 nil
lchown(2)
。boolean
或 fail
uv_fs_t userdata
路径
:字符串
new_path
: string
flags
: 表
, 整数
, 或 nil
excl
: 布尔值
ficlone
: 布尔值
ficlone_force
: 布尔值
callback
: callable
(异步版本)或 nil
(同步版本)err
: nil
或 字符串
success
: boolean
或 nil
flags
参数,则第三个参数将被视为 callback
。boolean
或 fail
uv_fs_t userdata
路径
:字符串
callback
: callable
(异步版本)或 nil
(同步版本)err
: nil
或 字符串
dir
: luv_dir_t userdata
或 nil
entries
: 整数
或 nil
luv_dir_t userdata
或 fail
uv_fs_t userdata
dir:readdir([callback])
dir
: luv_dir_t userdata
callback
: callable
(异步版本)或 nil
(同步版本)err
: nil
或 字符串
entries
: 表
或 nil
(见下文)luv_dir_t
。返回一个数据表的表,其中条目数 n
等于或小于与关联的 uv.fs_opendir() 调用中使用的 entries
参数。table
或 fail
[1, 2, 3, ..., n]
: 表
name
: 字符串
type
: string
uv_fs_t userdata
dir:closedir([callback])
dir
: luv_dir_t userdata
callback
: callable
(异步版本)或 nil
(同步版本)err
: nil
或 字符串
success
: boolean
或 nil
boolean
或 fail
uv_fs_t userdata
路径
:字符串
callback
: callable
(异步版本)或 nil
(同步版本)err
: nil
或 字符串
表
或 nil
(见下文)statfs(2)
。表
或 nil
type
: 整数
bsize
: 整数
blocks
: integer
bfree
: 整数
bavail
: 整数
files
: 整数
ffree
: 整数
getaddrinfo
和 getnameinfo
请求。local function work_callback(a, b)
return a + b
end
local function after_work_callback(c)
print("The result is: " .. c)
end
local work = uv.new_work(work_callback, after_work_callback)
work:queue(1, 2)
-- output: "The result is: 3"
work_callback
: 函数
或 字符串
...
: 传递给/来自 uv.queue_work(work_ctx, ...)
的 threadargs
after_work_callback
: 函数
...
: 从 work_callback
返回的 threadargs
luv_work_ctx_t
(不是 uv_work_t
)。work_callback
是一个 Lua 函数或一个包含 Lua 代码或从函数转储的字节码的字符串。返回包装它的 Lua 用户数据。luv_work_ctx_t userdata
work_ctx:queue(...)
work_ctx
: luv_work_ctx_t userdata
...
: threadargs
...
的任何附加参数在一个新的 Lua 状态中运行 work_callback
。从 work_callback
返回的值将传递给 after_work_callback
,后者在主循环线程中调用。boolean
或 fail
host
: 字符串
或 nil
service
: 字符串
或 nil
hints
: 表
或 nil
family
: 字符串
或 整数
或 nil
socktype
: 字符串
或 整数
或 nil
protocol
: 字符串
或 整数
或 nil
addrconfig
: 布尔值
或 nil
v4mapped
: 布尔值
或 nil
all
: 布尔值
或 nil
numerichost
: 布尔值
或 nil
passive
: 布尔值
或 nil
numericserv
: 布尔值
或 nil
canonname
: 布尔值
或 nil
callback
: callable
(异步版本)或 nil
(同步版本)err
: nil
或 字符串
addresses
: 表
或 nil
(见下文)getaddrinfo(3)
。node
或 service
可以是 nil
,但不能两者都是。family
: "unix"
, "inet"
, "inet6"
, "ipx"
, "netlink"
, "x25"
, "ax25"
, "atmpvc"
, "appletalk"
, 或 "packet"
socktype
: "stream"
, "dgram"
, "raw"
, "rdm"
, 或 "seqpacket"
protocol
: 将使用 getprotobyname(3)
函数查找(示例:"ip"
, "icmp"
, "tcp"
, "udp"
等)table
或 fail
[1, 2, 3, ..., n]
: 表
addr
: 字符串
family
: string
port
: 整数
或 nil
socktype
: 字符串
protocol
: 字符串
canonname
: 字符串
或 nil
uv_getaddrinfo_t userdata
或 fail
address
: 表
ip
: 字符串
或 nil
port
: 整数
或 nil
family
: 字符串
或 整数
或 nil
callback
: callable
(异步版本)或 nil
(同步版本)err
: nil
或 字符串
host
: 字符串
或 nil
service
: 字符串
或 nil
getnameinfo(3)
。family
必须是以下之一:"unix"
、"inet"
、"inet6"
、"ipx"
、"netlink"
、"x25"
、"ax25"
、"atmpvc"
、"appletalk"
或 "packet"
。字符串, 字符串
或 fail
uv_getnameinfo_t userdata
或 fail
options
: 表
或 nil
stack_size
: 整数
或 nil
entry
: 函数
或 字符串
...
: 传递给 entry
的 threadargs
luv_thread_t
(不是 uv_thread_t
)。返回包装它的 Lua 用户数据并异步执行 entry
,它可以是 Lua 函数,也可以是包含 Lua 代码或从函数转储的字节码的字符串。附加参数 ...
将传递给 entry
函数,并且可以提供可选的 options
表。当前接受的 option
字段是 stack_size
。luv_thread_t userdata
或 fail
thread:equal(other_thread)
thread
: luv_thread_t userdata
other_thread
: luv_thread_t userdata
__eq
元方法。thread:setaffinity(affinity, [get_old_affinity])
thread
: luv_thread_t userdata
affinity
: 表
[1, 2, 3, ..., n]
: 布尔值
get_old_affinity
: 布尔值
affinity
必须是一个表,每个键都是一个 CPU 编号,值是布尔值,表示该 thread
是否有资格在该 CPU 上运行。如果 affinity
表的长度不小于 uv.cpumask_size(),则表中缺少的任何 CPU 编号的关联性将设置为 false
。如果希望设置超过 uv.cpumask_size() 个 CPU 的关联性,则 affinity
必须是一个没有间隙的类似数组的表,因为如果 #affinity
大于 uv.cpumask_size(),它将用作 cpumask_size
。get_old_affinity
为 true
,则将返回 thread
的先前关联性设置。否则,成功调用后将返回 true
。table
或 boolean
或 fail
[1, 2, 3, ..., n]
: 布尔值
thread:setaffinity(affinity [, get_old_affinity])
thread
: luv_thread_t userdata
affinity
: table
get_old_affinity
: boolean
get_old_affinity
为 true
,则将返回 thread
的先前关联性设置。否则,成功调用后将返回 true
。table
或 失败
[1, 2, 3, ..., n]
: 布尔值
thread:getaffinity([mask_size])
mask_size
: integer
integer
或 fail
mask_size
,它必须大于或等于 uv.cpumask_size()
。如果省略了 mask_size
参数,则将使用 uv.cpumask_size()
的返回值。返回一个类似数组的表,其中每个键都对应一个 CPU 编号,值是布尔值,表示该 thread
是否有资格在该 CPU 上运行。thread
: luv_thread_t userdata
获取调用线程正在运行的 CPU 编号。
注意: 第一个 CPU 将返回为编号 1,而不是 0。这允许编号与 uv.thread_getaffinity
和 uv.thread_setaffinity
中使用的表键相对应。
uv.thread_setpriority({thread}
, {priority}
) uv.thread.setpriority()
> 方法形式 thread:setpriority(priority)
priority
: number
boolean
或 fail
thread
: luv_thread_t userdata
thread:getpriority()
thread
: luv_thread_t userdata
number
或 fail
boolean
或 fail
luv_thread_t
{entry}
[, {args}
]) uv.thread_create()entry
: function
args
: table
string
或 失败
entry
参数必须是一个函数,它将作为新线程的入口点运行。args
参数是一个表,它将作为参数传递给 entry
函数。entry
函数不应返回任何内容,并且应以 uv.thread_exit()
退出。返回一个新的 luv_thread_t
句柄,该句柄标识新创建的线程。{retval}
) uv.thread_exit()string
或 失败
retval
: any
uv.thread_create()
创建的线程中的入口点函数调用。可选的 retval
参数将被传递回 uv.thread_join()
。{thread}
) uv.thread_join()0
或 fail
thread:join()
thread
完成执行其入口函数。string
或 失败
msec
: integer
0
或 fail
cwd
: string
cwd
设置当前工作目录。{title}
) uv.set_process_title()integer
或 fail
title
: string
title
设置当前进程的标题。table
或 失败
sec
: integer
number
sec
: integer
uv.get_free_memory()
不同,因为它考虑了操作系统施加的任何限制。如果不存在此类限制,或者限制未知,则返回的量将与 uv.get_free_memory()
相同。utime
: table
(用户 CPU 时间使用量)usec
: integer
stime
: table
(系统 CPU 时间使用量)maxrss
: integer
(最大驻留集大小)ixrss
: integer
(积分共享内存大小)idrss
: integer
(积分非共享数据大小)isrss
: integer
(积分非共享堆栈大小)minflt
: integer
(页面回收(软页面错误))majflt
: integer
(页面错误(硬页面错误))integer
nswap
: integer
(交换)inblock
: integer
(块输入操作)table
或 失败
[1, 2, 3, ..., n]
: 表
oublock
: integer
(块输出操作)msgsnd
: integer
(发送的 IPC 消息)msgrcv
: integer
(接收的 IPC 消息)nsignals
: integer
(接收的信号)nvcsw
: integer
(自愿上下文切换)nivcsw
: integer
(非自愿上下文切换)integer
或 fail
model
: string
integer
speed
: number
times
: table
user
: number
integer
speed
: number
nice
: number
sys
: number
idle
: number
speed
: number
irq
: number
sys
: number
speed
: number
ENOTSUP
。id
: integer
id
设置进程的用户 ID。id
设置进程的组 ID。clock_id
: string
clock_id
可以是字符串 "monotonic"
或 "realtime"
。fd
: 整数
string
sec
: integer
integer, integer
或 fail
nsec
: integer
ip
: string
family
: string
[flags] handle-type handle-address
。标志是 R
表示引用、A
表示活动和 I
表示内部。{fd}
) uv.guess_handle()string
或 失败
fd
一起使用哪种类型的流。通常,这将在初始化期间使用,以猜测 stdio 流的类型。string
或 失败
number, number, number
sysname
: string
release
: string
version
: string
machine
: string
string
name
: string
size
: integer
(默认 = LUAL_BUFFERSIZE
)name
指定的环境变量,以字符串形式表示。可以通过定义 size
来设置内部缓冲区大小。如果省略,则使用 LUAL_BUFFERSIZE
。如果环境变量超过内部缓冲区中可用的存储空间,则返回 ENOBUFS
。如果不存在匹配的环境变量,则返回 ENOENT
。string
或 失败
name
: string
value
: string
value
设置由 name
指定的环境变量。boolean
或 fail
name
: string
name
指定的环境变量。boolean
或 fail
string
或 失败
string
或 失败
username
: string
uid
: integer
gid
: integer
shell
: string
homedir
: string
pid
:整数
pid
指定的进程的调度优先级。pid
:整数
priority
: integer
pid
指定的进程的调度优先级。priority
范围在 -20(高优先级)和 19(低优先级)之间。boolean
或 fail
len
: integer
flags
: nil
(见下文)callback
: callable
(异步版本)或 nil
(同步版本)err
: nil
或 字符串
bytes
: string
或 nil
len
的字符串。flags
预留供将来扩展使用,目前必须为 nil
或 0
或 {}
。len
时,会返回一个非零错误值或传递给回调。如果省略回调,则此函数将同步完成。string
或 fail
0
或 fail
errcode
: integer
err
和 name
):Unix 上的 POSIX 错误代码(存储在 errno 中的代码)和 Windows 上的 Win32 错误代码(由 GetLastError() 或 WSAGetLastError() 返回的代码)。string, string
或 nil
epoll_wait
)中处于空闲状态的时间量。此调用是线程安全的。"metrics_idle_time"
调用 loop_configure
之前,事件循环不会开始累积事件提供程序的空闲时间。loop_count
: integer
events
: integer
events_waiting
: integer