Nvim の:help ページ。 生成されたもので、 ソース を tree-sitter-vimdoc パーサーを使用して生成されています。
vim.uv.version() として公開されています)。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 luvituv と呼びます、単一の Lua モジュールが含まれています。このモジュールは、主に元の libuv バージョンに対応する名前の関数で構成されています。たとえば、libuv 関数 uv_tcp_bind には、uv.tcp_bind() に luv バージョンがあります。現在、非関数フィールドは uv.constants と uv.errno の2つのみ存在し、どちらもテーブルです。uv.tcp_bind(server, host, port) は、server:bind(host, port) として呼び出すこともできます。最初の引数 server がオブジェクトになり、関数名から tcp_ が削除されることに注意してください。メソッド形式については、存在する場合は以下に記載されています。callable: function、または __call メタメソッドを持つ table または userdatabuffer: string または string のシーケンシャルな tablethreadargs: 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: ヒントの値が無効です。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: サポートされていないソケットタイプ。整数文字列uv_loop_t — イベントループloop_close()を明示的に呼び出す必要はありません。ループの実行が終了し、開いているハンドルとリクエストがすべて閉じられた後にのみこの関数を呼び出してください。そうでない場合はEBUSYを返します。0 または 失敗mode: 文字列 または nil (デフォルト: "default")"default": アクティブで参照されているハンドルやリクエストがなくなるまでイベントループを実行します。uv.stop()が呼び出され、アクティブなハンドルまたはリクエストがまだ残っている場合はtrueを返します。それ以外の場合はfalseを返します。"once": I/Oを1回ポーリングします。保留中のコールバックがない場合、この関数はブロックすることに注意してください。完了した場合(アクティブなハンドルまたはリクエストが残っていない場合)はfalseを返し、さらにコールバックが期待される場合(将来のある時点でイベントループを再度実行する必要があることを意味する)はtrueを返します。"nowait": I/Oを1回ポーリングしますが、保留中のコールバックがない場合はブロックしません。完了した場合(アクティブなハンドルまたはリクエストが残っていない場合)はfalseを返し、さらにコールバックが期待される場合(将来のある時点でイベントループを再度実行する必要があることを意味する)はtrueを返します。ブール値 または 失敗uv.run()を呼び出しますが、luvバインディングを直接使用する場合、イベントループを開始するには、最初のイベントコールバックセットを登録した後にこれを呼び出す必要があります。option: 文字列...: optionに依存します。下記を参照してください。"block_signal": 新しいイベントをポーリングするときにシグナルをブロックします。loop_configure()への第2引数は、シグナル名(小文字の文字列)またはシグナル番号です。この操作は現在、サンプリングプロファイラを使用する場合の不要なウェイクアップを抑制するために、"sigprof"シグナルに対してのみ実装されています。他のシグナルを要求すると、EINVALで失敗します。"metrics_idle_time": イベントプロバイダでイベントループが費やすアイドル時間の量を累積します。このオプションはmetrics_idle_time()を使用するために必要です。uv.loop_configure("block_signal", "sigprof")0 または 失敗ENOSYSエラーを処理する準備をしておいてください。これは、ループオプションがプラットフォームでサポートされていないことを意味します。nilを返します。文字列 または niltrueを返し、それ以外の場合はfalseを返します。ブール値 または 失敗uv.run("nowait")と組み合わせて使用して、1つのスレッドでポーリングし、別のスレッドでイベントループのコールバックを実行できます。整数 または nil整数整数callback: 呼び出し可能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()uv_getaddrinfo_t、uv_getnameinfo_t、uv_work_tリクエストのキャンセルのみが現在サポートされています。0 または 失敗req:get_type()文字列、整数uv_handle_t — 基本ハンドルuv_handle_tは、すべてのlibuvハンドルタイプの基本タイプです。ここに定義されているすべてのAPI関数は、任意のハンドルタイプで機能します。handle:is_active()trueを、非アクティブな場合はfalseを返します。「アクティブ」の意味は、ハンドルのタイプによって異なります。ブール値 または 失敗handle:is_closing()trueを、それ以外の場合はfalseを返します。ブール値 または 失敗handle:close([callback])callback: 呼び出し可能 または nilcallbackはこの呼び出しの後、非同期的に呼び出されます。メモリが解放される前に、各ハンドルでこれを呼び出す必要があります。callbackはそれでもイベントループの次の反復に延期されます。これにより、ハンドルに関連付けられているリソースを解放する機会が得られます。uv_connect_tやuv_write_tなどの進行中のリクエストはキャンセルされ、ECANCELEDで非同期的にコールバックが呼び出されます。handle:ref()handle:unref()handle:has_ref()trueを、参照されていない場合はfalseを返します。ブール値 または 失敗handle:send_buffer_size([size])size: 整数 または nil (デフォルト: 0)sizeが省略されている場合(または0の場合)、現在の送信バッファサイズを返します。それ以外の場合は、sizeを使用して新しい送信バッファサイズを設定します。整数 または 失敗 (sizeがnilまたは0の場合)0 または 失敗 (sizeがnilではなく、0でもない場合)handle:recv_buffer_size([size])size: 整数 または nil (デフォルト: 0)sizeが省略されている場合(または0の場合)、現在の送信バッファサイズを返します。それ以外の場合は、sizeを使用して新しい送信バッファサイズを設定します。整数 または 失敗 (sizeがnilまたは0の場合)0 または 失敗 (sizeがnilではなく、0でもない場合)handle:fileno()EINVALエラーが発生します。EBADFを返します。整数または失敗handle:get_type()文字列、整数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()
endtimer:start(timeout, repeat, callback)timer: uv_timer_t ユーザーデータtimeout: 整数repeat: 整数callback: 呼び出し可能timeoutとrepeatはミリ秒単位です。timeoutがゼロの場合、コールバックは次のイベントループ反復で実行されます。repeatがゼロ以外の場合、コールバックは最初にtimeoutミリ秒後に実行され、その後repeatミリ秒ごとに繰り返し実行されます。0 または 失敗timer:stop()timer: uv_timer_t ユーザーデータ0 または 失敗timer:again()timer: uv_timer_t ユーザーデータEINVALが発生します。0 または 失敗timer:set_repeat(repeat)timer: uv_timer_t ユーザーデータrepeat: 整数timer:get_repeat()timer: uv_timer_t ユーザーデータ整数timer:get_due_in()timer: uv_timer_t ユーザーデータ整数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: 呼び出し可能0 または 失敗prepare:stop()prepare: uv_prepare_t ユーザーデータ0 または 失敗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: 呼び出し可能0 または 失敗check:stop()check: uv_check_t ユーザーデータ0 または 失敗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: 呼び出し可能0 または 失敗idle:stop()idle: uv_idle_t ユーザーデータ0 または 失敗uv_async_t — 非同期ハンドルlocal async
async = uv.new_async(function()
print("async operation ran")
async:close()
end)
async:send()callback: 呼び出し可能...: uv.async_send(async, ...) から/への threadargsuv_async_t ユーザーデータまたは失敗async:send(...)async: uv_async_t ユーザーデータ...: threadargs0 または 失敗uv.async_send(async)への呼び出しを結合します。つまり、それへのすべての呼び出しがコールバックの実行を生むとは限りません。たとえば、コールバックが呼び出される前にuv.async_send()が連続して5回呼び出された場合、コールバックは1回だけ呼び出されます。コールバックが呼び出された後にuv.async_send()が再び呼び出された場合、再び呼び出されます。uv_poll_t — ポーリングハンドルuv_poll_tを使用することはお勧めしません。 uv_tcp_t、uv_udp_tなどは、特にWindowsではuv_poll_tで達成できるものよりも高速でスケーラブルな実装を提供します。fd: 整数uv_poll_t ユーザーデータまたは失敗fd: 整数uv_poll_t ユーザーデータまたは失敗poll:start(events, callback)poll: uv_poll_t ユーザーデータevents: 文字列またはnil(デフォルト: "rw")callback: 呼び出し可能err: nilまたは文字列events: 文字列またはnilevents は、"r"、"w"、"rw"、"d"、"rd"、"wd"、"rwd"、"p"、"rp"、"wp"、"rwp"、"dp"、"rdp"、"wdp"、または"rwdp"です。ここで、r はREADABLE、w はWRITABLE、d はDISCONNECT、p はPRIORITIZEDを表します。イベントが検出されるとすぐに、ステータスが0に設定され、検出されたイベントがeventsフィールドに設定された状態でコールバックが呼び出されます。0 または 失敗uv.poll_start()を呼び出しても問題ありません。これにより、監視対象のイベントマスクが更新されます。poll:stop()poll: uv_poll_t ユーザーデータ0 または 失敗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 userdata または failsignal:start(signum, callback)signal: uv_signal_t userdatasignum: 整数 または 文字列callback: 呼び出し可能signum: 文字列signal:start_oneshot(signum, callback)signal: uv_signal_t userdatasignum: 整数 または 文字列callback: 呼び出し可能signum: 文字列0 または 失敗signal:stop()signal: uv_signal_t userdata0 または 失敗uv_process_t — プロセスハンドルpath: 文字列options: テーブル(下記参照)on_exit: 呼び出し可能code: 整数signal: 整数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 - 文字列のリストとしてのコマンドライン引数。最初の文字列はプログラムへのパスにする必要はありません。これはpathで既に提供されています。Windowsでは、これはCreateProcessを使用し、引数を文字列に連結します。これにより、いくつかの奇妙なエラーが発生する可能性があります(Windowsについては、以下のoptions.verbatimを参照してください)。options.stdio - 子プロセスで使用可能になるファイルディスクリプタを設定します。慣例として、最初のエントリはstdin、stdout、stderrです。(注記: Windowsでは、3番目のファイルディスクリプタ以降は、子プロセスがMSVCRTランタイムを使用する場合のみ、子プロセスで使用できます。)options.env - 新しいプロセスの環境変数を設定します。options.cwd - サブプロセスの現在の作業ディレクトリを設定します。options.uid - 子プロセスのユーザーIDを設定します。options.gid - 子プロセスのグループIDを設定します。options.verbatim - trueの場合、引数リストをコマンドライン文字列に変換するときに、引用符で囲んだり、他のエスケープを実行したりしません。このオプションはWindowsシステムでのみ意味があります。Unixでは無視されます。options.detached - trueの場合、子プロセスをデタッチされた状態で生成します。これにより、子プロセスはプロセッスグループリーダーになり、親プロセスが終了した後も実行を継続できます。親プロセスが子プロセスのプロセスハンドルに対してuv.unref()を呼び出さない限り、子プロセスは親プロセスのイベントループをアクティブな状態に保ち続けます。options.hide - trueの場合、通常作成されるサブプロセスのコンソールウィンドウを非表示にします。このオプションはWindowsシステムでのみ意味があります。Unixでは無視されます。options.stdioのエントリは、多くの形式を取ることができます。nilプレースホルダーを含めると、子プロセスでそのfdが無視されます。on_exitが呼び出されます。uv_process_t userdata、整数process:kill(signum)process: uv_process_t userdatasignum: 整数 または 文字列 または nil(デフォルト: sigterm)0 または 失敗pid: 整数signum: 整数 または 文字列 または nil(デフォルト: sigterm)0 または 失敗process:get_pid()process: uv_process_t userdata整数uv_stream_t — ストリームハンドルuv_stream_tは抽象型であり、libuvはuv_tcp_t、uv_pipe_t、uv_tty_tの形式で3つのストリーム実装を提供します。stream:shutdown([callback])uv_shutdown_t userdata または failstream:listen(backlog, callback)backlogは、カーネルがキューに入れる可能性のある接続数を示し、listen(2)と同じです。新しい着信接続が受信されると、コールバックが呼び出されます。0 または 失敗stream:accept(client_stream)0 または 失敗server:listen(128, function (err)
local client = uv.new_tcp()
server:accept(client)
end)stream:read_start(callback)0 または 失敗stream:read_start(function (err, chunk)
if err then
-- handle read error
elseif chunk then
-- handle data
else
-- handle disconnect
end
end)stream:read_stop()0 または 失敗stream:write(data, [callback])dataには、Lua文字列または文字列のテーブルを指定できます。テーブルが渡された場合、Cバックエンドはwritevを使用して、単一システムコールですべての文字列を送信します。callbackは、書き込みが完了した時点を知るためのものです。uv_write_t userdata または failstream:write2(data, send_handle, [callback])data: バッファcallback: 呼び出し可能 または nilerr: nilまたは文字列ipcオプションをtrueに設定して初期化する必要があります。uv_write_t userdata または failsend_handleは、サーバーまたは接続(リスニング状態または接続状態)であるTCPソケットまたはパイプである必要があります。バインドされたソケットまたはパイプはサーバーと見なされます。stream:try_write(data)data: バッファ整数または失敗stream:try_write2(data, send_handle)整数または失敗stream:is_readable()true、そうでなければfalseを返します。booleanstream:is_writable()true、そうでなければfalseを返します。booleanstream:set_blocking(blocking)blocking: boolean0 または 失敗stream:get_write_queue_size()整数uv_tcp_t — TCPハンドルflags: string または niluv_tcp_t userdata または failtcp:open(sock)tcp: uv_tcp_t userdatasock: integer0 または 失敗tcp:nodelay(enable)tcp: uv_tcp_t userdataenable: boolean0 または 失敗tcp:keepalive(enable, [delay])tcp: uv_tcp_t userdataenable: booleandelay: integer または nildelayは秒単位の初期遅延で、enableがfalseの場合は無視されます。0 または 失敗tcp:simultaneous_accepts(enable)tcp: uv_tcp_t userdataenable: boolean0 または 失敗tcp:bind(host, port, [flags])tcp: uv_tcp_t userdatahost: stringport: integerflags: table または nilipv6only: booleanhostはIPアドレスで、ドメイン名ではありません。すべてのflagsは、ipv6onlyフィールドがtrueまたはfalseであるテーブルで設定されます。uv.tcp_bind()、uv.listen()、またはuv.tcp_connect()からEADDRINUSEエラーが発生することが予想されます。つまり、この関数の呼び出しが成功しても、uv.listen()またはuv.tcp_connect()への呼び出しも成功するとは限りません。0にします。uv.tcp_getsockname()を使用して後で確認できます。0 または 失敗tcp:getpeername()tcp: uv_tcp_t userdatatable または failip : stringfamily : stringport : integertcp:getsockname()tcp: uv_tcp_t userdatatable または failip : stringfamily : stringport : integertcp:connect(host, port, callback)tcp: uv_tcp_t userdatahost: stringport: integercallback: 呼び出し可能err: nilまたは文字列uv_connect_t userdata または faillocal 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 userdatacallback: 呼び出し可能 または niluv.tcp_close_reset()の呼び出しを混在させることは許可されていません。socktype: string、integer、またはnil(デフォルト: stream)protocol: string、integer、またはnil(デフォルト: 0)flags1: table または nilnonblock: boolean(デフォルト: false)flags2: table または nilnonblock: 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 または fail[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 userdata または failpipe:open(fd)pipe: uv_pipe_t userdatafd: 整数0 または 失敗pipe:bind(name)pipe: uv_pipe_t userdataname: string0 または 失敗pipe:connect(name, [callback])pipe: uv_pipe_t userdataname: stringcallback: 呼び出し可能 または nilerr: nilまたは文字列uv_connect_t userdata または failpipe:getsockname()pipe: uv_pipe_t userdatastring または failpipe:getpeername()pipe: uv_pipe_t userdatastring または failpipe:pending_instances(count)pipe: uv_pipe_t userdatacount: integerpipe:pending_count()pipe: uv_pipe_t userdata整数pipe:pending_type()pipe: uv_pipe_t userdatauv.pipe_pending_type()によって返された型でハンドルを初期化し、uv.accept(pipe, handle)を呼び出します。文字列pipe:chmod(flags)pipe: uv_pipe_t userdataflags: stringflagsは、"r"、"w"、"rw"、または"wr"です。ここで、rはREADABLE、wはWRITABLEです。この関数はブロッキングです。0 または 失敗read_flags: table または nilnonblock: boolean(デフォルト: false)write_flags: table または nilnonblock: boolean(デフォルト: false)write fdに書き込み、read fdから読み取ることができます。結果のハンドルはpipe_openに渡したり、spawnで使用したり、その他の目的で使用できます。nonblock: OVERLAPPEDまたはFIONBIO/`O_NONBLOCK` I/Oで使用するために指定されたソケットハンドルを開きます。これは、libuvによって使用されるハンドルに推奨され、通常はそれ以外には推奨されません。O_CLOEXECフラグが設定されたpipe(2)と同等です。table または failread : 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 userdataname: stringflags: 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 または 失敗pipe:connect2(name, [flags], [callback])pipe: uv_pipe_t userdataname: stringflags: integer または table または nil (デフォルト: 0)callback: 呼び出し可能 または nilerr: 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 userdata または failuv_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: booleanuv_tty_t userdata または failtty:set_mode(mode)tty: uv_tty_t userdatamode: integermodeは、次の値を持つC enumです。0 または 失敗EBUSYで失敗する可能性があります。0 または 失敗tty:get_winsize()tty: uv_tty_t userdatainteger, integer または failstate: string"supported"または"unsupported"のいずれかでなければなりません。"supported"または"unsupported"です。ENOTSUPを返します。string または failuv_udp_t — UDPハンドルflags: table または nilfamily: string または nilmmsgs: integer または nil (デフォルト: 1)familyは"unix"、"inet"、"inet6"、"ipx"、"netlink"、"x25"、"ax25"、"atmpvc"、"appletalk"、または"packet"のいずれかでなければなりません。mmsgsは一度に受信できるメッセージの数をrecvmmsg(2)を介して決定します(割り当てられたバッファは、指定された数の最大サイズのdgramを収容できるサイズになります)。recvmmsg(2)をサポートするプラットフォームでのみ効果があります。flagsは文字列または整数にすることもできます。文字列の場合、上記のfamilyキーのように扱われます。整数の場合は、uv_udp_init_exを呼び出すときのflagsパラメーターとして直接使用されます。uv_udp_t userdata または failudp:get_send_queue_size()整数udp:get_send_queue_count()整数udp:open(fd)udp: uv_udp_t userdatafd: 整数0 または 失敗udp:bind(host, port, [flags])udp: uv_udp_t userdatahost: stringport: numberflags: table または nilipv6only: booleanreuseaddr: booleanflagsは、reuseaddrまたはipv6onlyフィールドがtrueまたはfalseに等しいテーブルで設定されます。0 または 失敗udp:getsockname()udp: uv_udp_t userdatatable または failip : stringfamily : stringport : integerudp:getpeername()udp: uv_udp_t userdatatable または failip : stringfamily : stringport : integer{udp}, {multicast_addr}, {interface_addr}, {membership})udp:set_membership(multicast_addr, interface_addr, membership)udp: uv_udp_t userdatamulticast_addr: stringinterface_addr: string または nilmembership: stringmulticast_addrはメンバーシップを設定するマルチキャストアドレスです。interface_addrはインターフェースアドレスです。membershipは文字列"leave"または"join"にすることができます。0 または 失敗{udp}, {multicast_addr}, {interface_addr}, {source_addr}, {membership})udp:set_source_membership(multicast_addr, interface_addr, source_addr, membership)udp: uv_udp_t userdatamulticast_addr: stringinterface_addr: string または nilsource_addr: 文字列membership: stringmulticast_addrはメンバーシップを設定するマルチキャストアドレスです。interface_addrはインターフェースアドレスです。source_addrは送信元アドレスです。membershipは文字列"leave"または"join"を指定できます。0 または 失敗udp:set_multicast_loop(on)udp: uv_udp_t userdataon: ブール値0 または 失敗udp:set_multicast_ttl(ttl)udp: uv_udp_t userdatattl: 整数ttlは1から255の整数です。0 または 失敗udp:set_multicast_interface(interface_addr)udp: uv_udp_t userdatainterface_addr: 文字列0 または 失敗udp:set_broadcast(on)udp: uv_udp_t userdataon: ブール値0 または 失敗udp:set_ttl(ttl)udp: uv_udp_t userdatattl: 整数ttlは1から255の整数です。0 または 失敗udp:send(data, host, port, callback)udp: uv_udp_t userdatadata: バッファhost: stringport: integercallback: 呼び出し可能err: nilまたは文字列0.0.0.0(「すべてのインターフェース」IPv4アドレス)とランダムなポート番号にバインドされます。uv_udp_send_t userdata または 失敗udp:try_send(data, host, port)udp: uv_udp_t userdatadata: バッファhost: stringport: integer整数または失敗udp:recv_start(callback)udp: uv_udp_t userdatacallback: 呼び出し可能err: nilまたは文字列data: 文字列 または niladdr: テーブルまたはnilip: 文字列port: integerfamily: 文字列flags: テーブルpartial: ブール値またはnilmmsg_chunk: ブール値またはnil0.0.0.0(「すべてのインターフェース」IPv4アドレス)とランダムなポート番号にバインドされます。0 または 失敗udp:recv_stop()udp: uv_udp_t userdata0 または 失敗udp:connect(host, port)udp: uv_udp_t userdatahost: stringport: integeruv.udp_connect()を呼び出すと、EISCONNエラーが発生します。接続されていないハンドルの接続を解除しようとすると、ENOTCONNエラーが返されます。0 または 失敗uv_fs_event_t — FSイベントハンドルuv_fs_event_t userdata または 失敗fs_event:start(path, flags, callback)fs_event: uv_fs_event_t userdatapath: 文字列flags: テーブルwatch_entry: ブール値またはnil(デフォルト: false)stat: ブール値またはnil(デフォルト: false)recursive: ブール値またはnil(デフォルト: false)callback: 呼び出し可能err: nilまたは文字列filename: 文字列events: テーブルchange: ブール値またはnilrename: ブール値またはnil0 または 失敗fs_event:stop()0 または 失敗fs_event:getpath()string または failuv_fs_poll_t — FSポーリングハンドルstatを使用してファイルの変更を検出するため、fsイベントハンドルが使用できないファイルシステムでも動作します。uv_fs_poll_t userdata または 失敗fs_poll:start(path, interval, callback)fs_poll: uv_fs_poll_t userdatapath: 文字列interval: 整数callback: 呼び出し可能err: nilまたは文字列prev: テーブルまたはnil(uv.fs_statを参照)curr: テーブルまたはnil(uv.fs_statを参照)intervalミリ秒ごとにpathのファイルの変更をチェックします。0 または 失敗fs_poll:stop()0 または 失敗fs_poll:getpath()string または failuv_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: 呼び出し可能(非同期版)またはnil(同期版)err: nilまたは文字列success: ブール値またはnilclose(2)と同等です。ブール値または失敗uv_fs_t userdatapath: 文字列flags: 文字列または整数mode: integercallback: 呼び出し可能(非同期版)またはnil(同期版)err: nilまたは文字列fd: 整数またはnilopen(2)と同等です。アクセスflagsは整数、または次のいずれかです: "r", "rs", "sr", "r+", "rs+", "sr+", "w", "wx", "xw", "w+", "wx+", "xw+", "a", "ax", "xa", "a+", "ax+", または"xa+"。整数または失敗uv_fs_t userdataCreateFileWを使用するため、ファイルは常にバイナリモードで開かれます。このため、O_BINARYおよびO_TEXTフラグはサポートされていません。fd: 整数size: 整数offset: 整数またはnilcallback: 呼び出し可能(非同期版)またはnil(同期版)err: nilまたは文字列data: 文字列 または nilpreadv(2)と同等です。任意のデータが返されます。空の文字列はEOFを示します。offsetがnilまたは省略されている場合、デフォルトで-1になり、「現在のファイルオフセットを使用および更新する」ことを示します。offsetが>= 0の場合、現在のファイルオフセットは読み取りによって更新されません。文字列または失敗uv_fs_t userdatapath: 文字列callback: 呼び出し可能(非同期版)またはnil(同期版)err: nilまたは文字列success: ブール値またはnilunlink(2)と同等です。ブール値または失敗uv_fs_t userdatafd: 整数data: バッファoffset: 整数またはnilcallback: 呼び出し可能(非同期版)またはnil(同期版)err: nilまたは文字列bytes: 整数またはnilpwritev(2)と同等です。書き込まれたバイト数を返します。offsetがnilまたは省略されている場合、デフォルトで-1になり、「現在のファイルオフセットを使用および更新する」ことを示します。offsetが>= 0の場合、現在のファイルオフセットは書き込みによって更新されません。整数または失敗uv_fs_t userdatapath: 文字列mode: integercallback: 呼び出し可能(非同期版)またはnil(同期版)err: nilまたは文字列success: ブール値またはnilmkdir(2)と同等です。ブール値または失敗uv_fs_t userdatatemplate: 文字列callback: 呼び出し可能(非同期版)またはnil(同期版)err: nilまたは文字列path: 文字列またはnilmkdtemp(3)と同等です。文字列または失敗uv_fs_t userdatatemplate: 文字列callback: 呼び出し可能(非同期版)またはnil(同期版)err: nilまたは文字列fd: 整数またはnilpath: 文字列またはnilmkstemp(3)に相当します。一時ファイルのハンドルとファイル名を返します。整数, 文字列 または 失敗uv_fs_t userdatapath: 文字列callback: 呼び出し可能(非同期版)またはnil(同期版)err: nilまたは文字列success: ブール値またはnilrmdir(2)に相当します。ブール値または失敗uv_fs_t userdatapath: 文字列callback: 呼び出し可能err: nilまたは文字列成功: uv_fs_t userdata または nilscandir(3)に相当しますが、APIが少し異なります。uv.fs_scandir_next()に渡せるハンドルを返します。uv_fs_t userdata または 失敗fs: uv_fs_t userdata文字列, 文字列 または nil または 失敗path: 文字列callback: 呼び出し可能(非同期版)またはnil(同期版)err: nilまたは文字列stat: テーブル または nil(下記参照)stat(2)に相当します。テーブル または 失敗dev : 整数mode : 整数nlink : 整数uid : 整数gid : 整数rdev : 整数ino : 整数size : 整数blksize : 整数blocks : 整数flags : 整数gen : 整数atime : テーブルsec : 整数nsec : 整数mtime : テーブルsec : 整数nsec : 整数ctime : テーブルsec : 整数nsec : 整数birthtime : テーブルsec : 整数nsec : 整数type : 文字列uv_fs_t userdatafd: 整数callback: 呼び出し可能(非同期版)またはnil(同期版)err: nilまたは文字列stat: テーブル または nil(uv.fs_stat参照)fstat(2)に相当します。テーブル または 失敗(uv.fs_stat参照)uv_fs_t userdatapath: 文字列callback: 呼び出し可能(非同期版)またはnil(同期版)err: nilまたは文字列stat: テーブル または nil(uv.fs_stat参照)lstat(2)に相当します。uv_fs_t userdatapath: 文字列new_path: 文字列callback: 呼び出し可能(非同期版)またはnil(同期版)err: nilまたは文字列success: ブール値またはnilrename(2)に相当します。ブール値または失敗uv_fs_t userdatafd: 整数callback: 呼び出し可能(非同期版)またはnil(同期版)err: nilまたは文字列success: ブール値またはnilfsync(2)に相当します。ブール値または失敗uv_fs_t userdatafd: 整数callback: 呼び出し可能(非同期版)またはnil(同期版)err: nilまたは文字列success: ブール値またはnilfdatasync(2)に相当します。ブール値または失敗uv_fs_t userdatafd: 整数offset: 整数callback: 呼び出し可能(非同期版)またはnil(同期版)err: nilまたは文字列success: ブール値またはnilftruncate(2)に相当します。ブール値または失敗uv_fs_t userdataout_fd: 整数in_fd: 整数in_offset: 整数size: 整数callback: 呼び出し可能(非同期版)またはnil(同期版)err: nilまたは文字列bytes: 整数またはnilsendfile(2)に限定的に相当します。書き込まれたバイト数を返します。整数または失敗uv_fs_t userdatapath: 文字列mode: integercallback: 呼び出し可能(非同期版)またはnil(同期版)err: nilまたは文字列アクセス権限: 真偽値 または nilaccess(2)に相当します。WindowsではGetFileAttributesW()を使用します。アクセスmodeは、整数または"R"、"W"、"X"を含む文字列にすることができます。アクセス権限を示すtrueまたはfalseを返します。ブール値または失敗uv_fs_t userdatapath: 文字列mode: integercallback: 呼び出し可能(非同期版)またはnil(同期版)err: nilまたは文字列success: ブール値またはnilchmod(2)に相当します。ブール値または失敗uv_fs_t userdatafd: 整数mode: integercallback: 呼び出し可能(非同期版)またはnil(同期版)err: nilまたは文字列success: ブール値またはnilfchmod(2)に相当します。ブール値または失敗uv_fs_t userdatapath: 文字列atime: 数値mtime: 数値callback: 呼び出し可能(非同期版)またはnil(同期版)err: nilまたは文字列success: ブール値またはnilutime(2)に相当します。ブール値または失敗uv_fs_t userdatafd: 整数atime: 数値mtime: 数値callback: 呼び出し可能(非同期版)またはnil(同期版)err: nilまたは文字列success: ブール値またはnilfutime(2)に相当します。ブール値または失敗uv_fs_t userdatapath: 文字列atime: 数値mtime: 数値callback: 呼び出し可能(非同期版)またはnil(同期版)err: nilまたは文字列success: ブール値またはnillutime(2)に相当します。ブール値または失敗uv_fs_t userdatapath: 文字列new_path: 文字列callback: 呼び出し可能(非同期版)またはnil(同期版)err: nilまたは文字列success: ブール値またはnillink(2)に相当します。ブール値または失敗uv_fs_t userdatapath: 文字列new_path: 文字列flags: テーブル、整数、またはnildir: 真偽値junction: 真偽値callback: 呼び出し可能(非同期版)またはnil(同期版)err: nilまたは文字列success: ブール値またはnilsymlink(2)に相当します。flagsパラメータが省略された場合、3番目のパラメータはcallbackとして扱われます。ブール値または失敗uv_fs_t userdatapath: 文字列callback: 呼び出し可能(非同期版)またはnil(同期版)err: nilまたは文字列path: 文字列またはnilreadlink(2)に相当します。文字列または失敗uv_fs_t userdatapath: 文字列callback: 呼び出し可能(非同期版)またはnil(同期版)err: nilまたは文字列path: 文字列またはnilrealpath(3)に相当します。文字列または失敗uv_fs_t userdatapath: 文字列uid: 整数gid: 整数callback: 呼び出し可能(非同期版)またはnil(同期版)err: nilまたは文字列success: ブール値またはnilchown(2)に相当します。ブール値または失敗uv_fs_t userdatafd: 整数uid: 整数gid: 整数callback: 呼び出し可能(非同期版)またはnil(同期版)err: nilまたは文字列success: ブール値またはnilfchown(2)に相当します。ブール値または失敗uv_fs_t userdatafd: 整数uid: 整数gid: 整数callback: 呼び出し可能(非同期版)またはnil(同期版)err: nilまたは文字列success: ブール値またはnillchown(2)に相当します。ブール値または失敗uv_fs_t userdatapath: 文字列new_path: 文字列flags: テーブル、整数、またはnilexcl: 真偽値ficlone: 真偽値ficlone_force: 真偽値callback: 呼び出し可能(非同期版)またはnil(同期版)err: nilまたは文字列success: ブール値またはnilflagsパラメータが省略された場合、3番目のパラメータはcallbackとして扱われます。ブール値または失敗uv_fs_t userdatapath: 文字列callback: 呼び出し可能(非同期版)またはnil(同期版)err: nilまたは文字列dir: luv_dir_t userdata または nilentries: 整数 または nilentriesパラメータは、uv.fs_readdir()の各呼び出しで返されるエントリの最大数を定義します。luv_dir_t userdata または 失敗uv_fs_t userdatadir:readdir([callback])dir: luv_dir_t userdatacallback: 呼び出し可能(非同期版)またはnil(同期版)err: nilまたは文字列entries: テーブル または nil(下記参照)luv_dir_tを反復処理します。データテーブルのテーブルが返され、エントリ数nは、関連付けられたuv.fs_opendir()呼び出しで使用されたentriesパラメータ以下になります。テーブル または 失敗[1, 2, 3, ..., n] : テーブルname : 文字列type : 文字列uv_fs_t userdatadir:closedir([callback])dir: luv_dir_t userdatacallback: 呼び出し可能(非同期版)またはnil(同期版)err: nilまたは文字列success: ブール値またはnilブール値または失敗uv_fs_t userdatapath: 文字列callback: 呼び出し可能(非同期版)またはnil(同期版)err: nilまたは文字列テーブル または nil(下記参照)statfs(2)に相当します。テーブルまたはnilを返します。type : 整数bsize : 整数blocks : 整数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, ...)に渡される/返されるthreadargsafter_work_callback: 関数...: work_callbackから返されるthreadargsluv_work_ctx_t(uv_work_tではない)を作成して初期化します。work_callbackはLua関数、またはLuaコードを含む文字列、あるいは関数からダンプされたバイトコードです。それをラップするLuaユーザデータオブジェクトを返します。luv_work_ctx_t userdatawork_ctx:queue(...)work_ctx: luv_work_ctx_t userdata...: threadargs...からの追加の引数を使用して、スレッドプールからスレッド内の新しいLua状態においてwork_callbackを実行するワークリクエストをキューイングします。work_callbackから返された値は、メインループスレッドで呼び出されるafter_work_callbackに渡されます。ブール値 または 失敗host: 文字列 または nilservice: 文字列 または nilhints: テーブル または nilfamily: 文字列 または 整数 または nilsocktype: 文字列 または 整数 または nilprotocol: 文字列 または 整数 または niladdrconfig: 真偽値 または nilv4mapped: 真偽値 または nilall: 真偽値 または nilnumerichost: 真偽値 または nilpassive: 真偽値 または nilnumericserv: 真偽値 または nilcanonname: 真偽値 または nilcallback: 呼び出し可能(非同期版)またはnil(同期版)err: nilまたは文字列addresses: テーブル または nil(下記参照)getaddrinfo(3)に相当します。nodeまたはserviceのどちらかはnilにすることができますが、両方とも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"など)テーブル または 失敗[1, 2, 3, ..., n] : テーブルaddr : 文字列family : stringport : 整数 または nilsocktype : 文字列protocol : 文字列canonname : 文字列 または niluv_getaddrinfo_t userdata または 失敗address: テーブルip: 文字列 または nilport: 整数 または nilfamily: 文字列 または 整数 または nilcallback: 呼び出し可能(非同期版)またはnil(同期版)err: nilまたは文字列host: 文字列 または nilservice: 文字列 または nilgetnameinfo(3) と同等です。familyは"unix"、"inet"、"inet6"、"ipx"、"netlink"、"x25"、"ax25"、"atmpvc"、"appletalk"、または"packet"のいずれかでなければなりません。文字列, 文字列 または 失敗uv_getnameinfo_t userdata または 失敗options: テーブル または nilstack_size: 整数 または nilentry: 関数 または 文字列...: entry に渡されるthreadargsluv_thread_t (uv_thread_tではない) を作成および初期化します。それをラップするLuaユーザーデータ を返し、非同期的にentryを実行します。entryはLua関数、またはLuaコードを含む文字列、あるいは関数からダンプされたバイトコードのいずれかになります。追加の引数...はentry関数に渡され、オプションのoptionsテーブルを提供できます。現在受け入れられているoptionフィールドはstack_sizeです。luv_thread_t userdata または 失敗thread:equal(other_thread)thread: luv_thread_t userdataother_thread: luv_thread_t userdata__eqメタメソッドと同等です。thread:setaffinity(affinity, [get_old_affinity])thread: luv_thread_t userdataaffinity: テーブル[1, 2, 3, ..., n] : ブール値get_old_affinity: ブール値affinityは、各キーがCPU番号で、値がthreadがそのCPUで実行できるかどうかを表すブール値であるテーブルでなければなりません。uv.cpumask_size()以上の長さのaffinityテーブルでない場合、テーブルにないCPU番号のアフィニティはfalseに設定されます。uv.cpumask_size()以上のCPUのアフィニティを設定する必要がある場合、affinityはギャップのない配列のようなテーブルでなければなりません。なぜなら、#affinityはuv.cpumask_size()より大きい場合、cpumask_sizeとして使用されるからです。get_old_affinityがtrueの場合、threadの以前のアフィニティ設定が返されます。それ以外の場合は、成功した呼び出しの後、trueが返されます。テーブル または ブール値 または 失敗[1, 2, 3, ..., n] : ブール値thread:getaffinity([mask_size])thread: luv_thread_t userdatamask_size: 整数mask_sizeが指定されている場合、uv.cpumask_size()以上でなければなりません。mask_sizeパラメータが省略された場合、uv.cpumask_size()の戻り値が使用されます。各キーがCPU番号に対応し、値がthreadがそのCPUで実行できるかどうかを表すブール値である配列のようなテーブルを返します。table または fail[1, 2, 3, ..., n] : ブール値uv.thread_getaffinityとuv.thread_setaffinityで使用されるテーブルキーに対応します。整数または失敗thread:setpriority(priority)thread: luv_thread_t userdatapriority: 数値uv.constants.THREAD_PRIORITY_HIGHEST
uv.constants.THREAD_PRIORITY_ABOVE_NORMAL
uv.constants.THREAD_PRIORITY_NORMAL
uv.constants.THREAD_PRIORITY_BELOW_NORMAL
uv.constants.THREAD_PRIORITY_LOWEST
ブール値 または 失敗thread:getpriority()thread: luv_thread_t userdata数値 または 失敗luv_thread_tthread:join()thread: luv_thread_t userdatathreadがエントリ関数の実行を終了するのを待ちます。ブール値 または 失敗msec: 整数string または failstring または failcwd: 文字列cwdを使用して現在の作業ディレクトリを設定します。0 または 失敗string または failtitle: 文字列titleを使用して現在のプロセスのタイトルを設定します。0 または 失敗数値数値数値uv.get_free_memory()とは異なります。そのような制約がない場合、または制約が不明な場合、返される量はuv.get_free_memory()と同じになります。数値整数または失敗table または failutime : テーブル (使用されたユーザーCPU時間)sec : 整数usec : 整数stime : テーブル (使用されたシステムCPU時間)sec : 整数usec : 整数maxrss : 整数 (最大常駐セットサイズ)ixrss : 整数 (共有メモリの積分サイズ)idrss : 整数 (共有されていないデータサイズの積分)isrss : 整数 (共有されていないスタックサイズの積分)minflt : 整数 (ページの再取得(ソフトページフォルト))majflt : 整数 (ページフォルト(ハードページフォルト))nswap : 整数 (スワップ)inblock : 整数 (ブロック入力操作)oublock : 整数 (ブロック出力操作)msgsnd : 整数 (送信されたIPCメッセージ)msgrcv : 整数 (受信されたIPCメッセージ)nsignals : 整数 (受信されたシグナル)nvcsw : 整数 (任意のコンテキストスイッチ)nivcsw : 整数 (非任意のコンテキストスイッチ)整数table または fail[1, 2, 3, ..., n] : テーブルmodel : 文字列speed : 数値times : テーブルuser : 数値nice : 数値sys : 数値idle : 数値irq : 数値ENOTSUPを返します。整数または失敗整数整数id: 整数idを使用してプロセスのユーザーIDを設定します。id: 整数idを使用してプロセスのグループIDを設定します。数値clock_id: stringclock_idには、文字列"monotonic"または"realtime"を指定できます。table または failsec: integernsec: integer数値 または 失敗[flags] handle-type handle-addressです。flagsは、参照されている場合はR、アクティブな場合はA、内部の場合はIです。fd: 整数fdで使用するストリームの種類を検出するために使用されます。通常、これは初期化中にstdioストリームの種類を推測するために使用されます。文字列gettimeofday(2)のクロスプラットフォーム実装です。unix時刻の秒とマイクロ秒をペアとして返します。integer, integer または failip、family、netmask、internal、macフィールドを持つアドレス情報の配列です。table[name(s)] : tableip : stringfamily : stringnetmask : stringinternal : booleanmac : stringifindex: integerif_indextoname(3)のIPv6対応実装です。string または failifindex: integerifindexを文字列として返します。その他のプラットフォームでは、uv.if_indextoname()が使用されます。string または failnumber, number, numbertablesysname : stringrelease : stringversion : stringmachine : string文字列name: stringsize: integer (デフォルト = LUAL_BUFFERSIZE)nameで指定された環境変数を文字列として返します。内部バッファサイズはsizeを定義することで設定できます。省略された場合、LUAL_BUFFERSIZEが使用されます。環境変数が内部バッファで使用可能なストレージを超える場合、ENOBUFSが返されます。一致する環境変数が存在しない場合、ENOENTが返されます。string または failname: stringvalue: stringnameで指定された環境変数を文字列valueで設定します。ブール値 または 失敗name: stringnameで指定された環境変数をアンセットします。ブール値 または 失敗tablestring または failstring または failtableusername : stringuid : 整数gid : 整数shell : stringhomedir : string数値数値pid: 整数pidで指定されたプロセスのスケジューリング優先順位を返します。数値 または 失敗pid: 整数priority: integerpidで指定されたプロセスのスケジューリング優先順位を設定します。priorityの範囲は-20(高優先度)から19(低優先度)です。ブール値 または 失敗len: integerflags: nil (下記参照)callback: 呼び出し可能(非同期版)またはnil(同期版)err: nilまたは文字列bytes: string または nillenの文字列を埋めます。flagsは将来の拡張のために予約されており、現在はnilまたは0または{}でなければなりません。lenより少ないランダムバイトしか使用できない場合、非ゼロのエラー値が返されるか、コールバックに渡されます。コールバックが省略された場合、この関数は同期的に完了します。文字列または失敗0 または failerrcode: integererrとnameを参照)を返します。UnixではPOSIXエラーコード(errnoに格納されているもの)、WindowsではWin32エラーコード(GetLastError()またはWSAGetLastError()によって返されるもの)。string, string または nilepoll_wait)でアイドル状態であった時間を取得します。この呼び出しはスレッドセーフです。"metrics_idle_time"を使用してloop_configureを呼び出すまで、イベントプロバイダのアイドル時間を累積しません。数値prepareコールバック(uv.new_prepare()、uv.prepare_start()を参照)でこれらのメトリクスを取得することをお勧めします。tableloop_count : integerevents : integerevents_waiting : integer