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 luvit
uv
と呼びます、単一の 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
または 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
: ヒントの値が無効です。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
を返します。文字列
または nil
true
を返し、それ以外の場合は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
: 呼び出し可能
または nil
callback
はこの呼び出しの後、非同期的に呼び出されます。メモリが解放される前に、各ハンドルでこれを呼び出す必要があります。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()
end
timer: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, ...)
から/への threadargs
uv_async_t ユーザーデータ
または失敗
async:send(...)
async
: uv_async_t ユーザーデータ
...
: threadargs
0
または 失敗
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
: 文字列
または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に設定され、検出されたイベントが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
または fail
signal:start(signum, callback)
signal
: uv_signal_t userdata
signum
: 整数
または 文字列
callback
: 呼び出し可能
signum
: 文字列
signal:start_oneshot(signum, callback)
signal
: uv_signal_t userdata
signum
: 整数
または 文字列
callback
: 呼び出し可能
signum
: 文字列
0
または 失敗
signal:stop()
signal
: uv_signal_t userdata
0
または 失敗
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 userdata
signum
: 整数
または 文字列
または 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
または fail
stream: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
または fail
stream:write2(data, send_handle, [callback])
data
: バッファ
callback
: 呼び出し可能
または nil
err
: nil
または文字列
ipc
オプションをtrue
に設定して初期化する必要があります。uv_write_t userdata
または fail
send_handle
は、サーバーまたは接続(リスニング状態または接続状態)であるTCPソケットまたはパイプである必要があります。バインドされたソケットまたはパイプはサーバーと見なされます。stream:try_write(data)
data
: バッファ
整数
または失敗
stream:try_write2(data, send_handle)
整数
または失敗
stream:is_readable()
true
、そうでなければfalse
を返します。boolean
stream:is_writable()
true
、そうでなければfalse
を返します。boolean
stream:set_blocking(blocking)
blocking
: boolean
0
または 失敗
stream:get_write_queue_size()
整数
uv_tcp_t
— TCPハンドルflags
: string
または nil
uv_tcp_t userdata
または fail
tcp:open(sock)
tcp
: uv_tcp_t userdata
sock
: integer
0
または 失敗
tcp:nodelay(enable)
tcp
: uv_tcp_t userdata
enable
: boolean
0
または 失敗
tcp:keepalive(enable, [delay])
tcp
: uv_tcp_t userdata
enable
: boolean
delay
: integer
または nil
delay
は秒単位の初期遅延で、enable
がfalse
の場合は無視されます。0
または 失敗
tcp:simultaneous_accepts(enable)
tcp
: uv_tcp_t userdata
enable
: boolean
0
または 失敗
tcp:bind(host, port, [flags])
tcp
: uv_tcp_t userdata
host
: string
port
: integer
flags
: table
または nil
ipv6only
: boolean
host
は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 userdata
table
または fail
ip
: string
family
: string
port
: integer
tcp:getsockname()
tcp
: uv_tcp_t userdata
table
または fail
ip
: string
family
: string
port
: integer
tcp:connect(host, port, callback)
tcp
: uv_tcp_t userdata
host
: string
port
: integer
callback
: 呼び出し可能
err
: nil
または文字列
uv_connect_t userdata
または fail
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 userdata
callback
: 呼び出し可能
または 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
または 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
または fail
pipe:open(fd)
pipe
: uv_pipe_t userdata
fd
: 整数
0
または 失敗
pipe:bind(name)
pipe
: uv_pipe_t userdata
name
: string
0
または 失敗
pipe:connect(name, [callback])
pipe
: uv_pipe_t userdata
name
: string
callback
: 呼び出し可能
または nil
err
: nil
または文字列
uv_connect_t userdata
または fail
pipe:getsockname()
pipe
: uv_pipe_t userdata
string
または fail
pipe:getpeername()
pipe
: uv_pipe_t userdata
string
または fail
pipe:pending_instances(count)
pipe
: uv_pipe_t userdata
count
: integer
pipe:pending_count()
pipe
: uv_pipe_t userdata
整数
pipe:pending_type()
pipe
: uv_pipe_t userdata
uv.pipe_pending_type()
によって返された型でハンドルを初期化し、uv.accept(pipe, handle)
を呼び出します。文字列
pipe:chmod(flags)
pipe
: uv_pipe_t userdata
flags
: string
flags
は、"r"
、"w"
、"rw"
、または"wr"
です。ここで、r
はREADABLE
、w
はWRITABLE
です。この関数はブロッキングです。0
または 失敗
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
または fail
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 userdata
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
または 失敗
pipe:connect2(name, [flags], [callback])
pipe
: uv_pipe_t userdata
name
: string
flags
: integer
または table
または nil
(デフォルト: 0)callback
: 呼び出し可能
または 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 userdata
または fail
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 enumです。0
または 失敗
EBUSY
で失敗する可能性があります。0
または 失敗
tty:get_winsize()
tty
: uv_tty_t userdata
integer, integer
または fail
state
: string
"supported"
または"unsupported"
のいずれかでなければなりません。"supported"
または"unsupported"
です。ENOTSUP
を返します。string
または fail
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)
を介して決定します(割り当てられたバッファは、指定された数の最大サイズのdgramを収容できるサイズになります)。recvmmsg(2)
をサポートするプラットフォームでのみ効果があります。flags
は文字列または整数にすることもできます。文字列の場合、上記のfamily
キーのように扱われます。整数の場合は、uv_udp_init_ex
を呼び出すときのflags
パラメーターとして直接使用されます。uv_udp_t userdata
または fail
udp:get_send_queue_size()
整数
udp:get_send_queue_count()
整数
udp:open(fd)
udp
: uv_udp_t userdata
fd
: 整数
0
または 失敗
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
または 失敗
udp:getsockname()
udp
: uv_udp_t userdata
table
または fail
ip
: string
family
: string
port
: integer
udp:getpeername()
udp
: uv_udp_t userdata
table
または fail
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
または 失敗
{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
: 文字列
membership
: string
multicast_addr
はメンバーシップを設定するマルチキャストアドレスです。interface_addr
はインターフェースアドレスです。source_addr
は送信元アドレスです。membership
は文字列"leave"
または"join"
を指定できます。0
または 失敗
udp:set_multicast_loop(on)
udp
: uv_udp_t userdata
on
: ブール値
0
または 失敗
udp:set_multicast_ttl(ttl)
udp
: uv_udp_t userdata
ttl
: 整数
ttl
は1から255の整数です。0
または 失敗
udp:set_multicast_interface(interface_addr)
udp
: uv_udp_t userdata
interface_addr
: 文字列
0
または 失敗
udp:set_broadcast(on)
udp
: uv_udp_t userdata
on
: ブール値
0
または 失敗
udp:set_ttl(ttl)
udp
: uv_udp_t userdata
ttl
: 整数
ttl
は1から255の整数です。0
または 失敗
udp:send(data, host, port, callback)
udp
: uv_udp_t userdata
data
: バッファ
host
: string
port
: integer
callback
: 呼び出し可能
err
: nil
または文字列
0.0.0.0
(「すべてのインターフェース」IPv4アドレス)とランダムなポート番号にバインドされます。uv_udp_send_t userdata
または 失敗
udp:try_send(data, host, port)
udp
: uv_udp_t userdata
data
: バッファ
host
: string
port
: integer
整数
または失敗
udp:recv_start(callback)
udp
: uv_udp_t userdata
callback
: 呼び出し可能
err
: nil
または文字列
data
: 文字列
または nil
addr
: テーブル
またはnil
ip
: 文字列
port
: integer
family
: 文字列
flags
: テーブル
partial
: ブール値
またはnil
mmsg_chunk
: ブール値
またはnil
0.0.0.0
(「すべてのインターフェース」IPv4アドレス)とランダムなポート番号にバインドされます。0
または 失敗
udp:recv_stop()
udp
: uv_udp_t userdata
0
または 失敗
udp:connect(host, port)
udp
: uv_udp_t userdata
host
: string
port
: integer
uv.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 userdata
path
: 文字列
flags
: テーブル
watch_entry
: ブール値
またはnil
(デフォルト: false
)stat
: ブール値
またはnil
(デフォルト: false
)recursive
: ブール値
またはnil
(デフォルト: false
)callback
: 呼び出し可能
err
: nil
または文字列
filename
: 文字列
events
: テーブル
change
: ブール値
またはnil
rename
: ブール値
またはnil
0
または 失敗
fs_event:stop()
0
または 失敗
fs_event:getpath()
string
または fail
uv_fs_poll_t
— FSポーリングハンドルstat
を使用してファイルの変更を検出するため、fsイベントハンドルが使用できないファイルシステムでも動作します。uv_fs_poll_t userdata
または 失敗
fs_poll:start(path, interval, callback)
fs_poll
: uv_fs_poll_t userdata
path
: 文字列
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
または fail
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
: 呼び出し可能
(非同期版)またはnil
(同期版)err
: nil
または文字列
success
: ブール値
またはnil
close(2)
と同等です。ブール値
または失敗
uv_fs_t userdata
path
: 文字列
flags
: 文字列
または整数
mode
: integer
callback
: 呼び出し可能
(非同期版)またはnil
(同期版)err
: nil
または文字列
fd
: 整数
またはnil
open(2)
と同等です。アクセスflags
は整数、または次のいずれかです: "r"
, "rs"
, "sr"
, "r+"
, "rs+"
, "sr+"
, "w"
, "wx"
, "xw"
, "w+"
, "wx+"
, "xw+"
, "a"
, "ax"
, "xa"
, "a+"
, "ax+"
, または"xa+"
。整数
または失敗
uv_fs_t userdata
CreateFileW
を使用するため、ファイルは常にバイナリモードで開かれます。このため、O_BINARY
およびO_TEXT
フラグはサポートされていません。fd
: 整数
size
: 整数
offset
: 整数
またはnil
callback
: 呼び出し可能
(非同期版)またはnil
(同期版)err
: nil
または文字列
data
: 文字列
または nil
preadv(2)
と同等です。任意のデータが返されます。空の文字列はEOFを示します。offset
がnilまたは省略されている場合、デフォルトで-1
になり、「現在のファイルオフセットを使用および更新する」ことを示します。offset
が>= 0の場合、現在のファイルオフセットは読み取りによって更新されません。文字列
または失敗
uv_fs_t userdata
path
: 文字列
callback
: 呼び出し可能
(非同期版)またはnil
(同期版)err
: nil
または文字列
success
: ブール値
またはnil
unlink(2)
と同等です。ブール値
または失敗
uv_fs_t userdata
fd
: 整数
data
: バッファ
offset
: 整数
またはnil
callback
: 呼び出し可能
(非同期版)またはnil
(同期版)err
: nil
または文字列
bytes
: 整数
またはnil
pwritev(2)
と同等です。書き込まれたバイト数を返します。offset
がnilまたは省略されている場合、デフォルトで-1
になり、「現在のファイルオフセットを使用および更新する」ことを示します。offset
が>= 0の場合、現在のファイルオフセットは書き込みによって更新されません。整数
または失敗
uv_fs_t userdata
path
: 文字列
mode
: integer
callback
: 呼び出し可能
(非同期版)またはnil
(同期版)err
: nil
または文字列
success
: ブール値
またはnil
mkdir(2)
と同等です。ブール値
または失敗
uv_fs_t userdata
template
: 文字列
callback
: 呼び出し可能
(非同期版)またはnil
(同期版)err
: nil
または文字列
path
: 文字列
またはnil
mkdtemp(3)
と同等です。文字列
または失敗
uv_fs_t userdata
template
: 文字列
callback
: 呼び出し可能
(非同期版)またはnil
(同期版)err
: nil
または文字列
fd
: 整数
またはnil
path
: 文字列
またはnil
mkstemp(3)
に相当します。一時ファイルのハンドルとファイル名を返します。整数, 文字列
または 失敗
uv_fs_t userdata
path
: 文字列
callback
: 呼び出し可能
(非同期版)またはnil
(同期版)err
: nil
または文字列
success
: ブール値
またはnil
rmdir(2)
に相当します。ブール値
または失敗
uv_fs_t userdata
path
: 文字列
callback
: 呼び出し可能
err
: nil
または文字列
成功
: uv_fs_t userdata
または nil
scandir(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 userdata
fd
: 整数
callback
: 呼び出し可能
(非同期版)またはnil
(同期版)err
: nil
または文字列
stat
: テーブル
または nil
(uv.fs_stat
参照)fstat(2)
に相当します。テーブル
または 失敗
(uv.fs_stat
参照)uv_fs_t userdata
path
: 文字列
callback
: 呼び出し可能
(非同期版)またはnil
(同期版)err
: nil
または文字列
stat
: テーブル
または nil
(uv.fs_stat
参照)lstat(2)
に相当します。uv_fs_t userdata
path
: 文字列
new_path
: 文字列
callback
: 呼び出し可能
(非同期版)またはnil
(同期版)err
: nil
または文字列
success
: ブール値
またはnil
rename(2)
に相当します。ブール値
または失敗
uv_fs_t userdata
fd
: 整数
callback
: 呼び出し可能
(非同期版)またはnil
(同期版)err
: nil
または文字列
success
: ブール値
またはnil
fsync(2)
に相当します。ブール値
または失敗
uv_fs_t userdata
fd
: 整数
callback
: 呼び出し可能
(非同期版)またはnil
(同期版)err
: nil
または文字列
success
: ブール値
またはnil
fdatasync(2)
に相当します。ブール値
または失敗
uv_fs_t userdata
fd
: 整数
offset
: 整数
callback
: 呼び出し可能
(非同期版)またはnil
(同期版)err
: nil
または文字列
success
: ブール値
またはnil
ftruncate(2)
に相当します。ブール値
または失敗
uv_fs_t userdata
out_fd
: 整数
in_fd
: 整数
in_offset
: 整数
size
: 整数
callback
: 呼び出し可能
(非同期版)またはnil
(同期版)err
: nil
または文字列
bytes
: 整数
またはnil
sendfile(2)
に限定的に相当します。書き込まれたバイト数を返します。整数
または失敗
uv_fs_t userdata
path
: 文字列
mode
: integer
callback
: 呼び出し可能
(非同期版)またはnil
(同期版)err
: nil
または文字列
アクセス権限
: 真偽値
または nil
access(2)
に相当します。WindowsではGetFileAttributesW()
を使用します。アクセスmode
は、整数または"R"
、"W"
、"X"
を含む文字列にすることができます。アクセス権限を示すtrue
またはfalse
を返します。ブール値
または失敗
uv_fs_t userdata
path
: 文字列
mode
: integer
callback
: 呼び出し可能
(非同期版)またはnil
(同期版)err
: nil
または文字列
success
: ブール値
またはnil
chmod(2)
に相当します。ブール値
または失敗
uv_fs_t userdata
fd
: 整数
mode
: integer
callback
: 呼び出し可能
(非同期版)またはnil
(同期版)err
: nil
または文字列
success
: ブール値
またはnil
fchmod(2)
に相当します。ブール値
または失敗
uv_fs_t userdata
path
: 文字列
atime
: 数値
mtime
: 数値
callback
: 呼び出し可能
(非同期版)またはnil
(同期版)err
: nil
または文字列
success
: ブール値
またはnil
utime(2)
に相当します。ブール値
または失敗
uv_fs_t userdata
fd
: 整数
atime
: 数値
mtime
: 数値
callback
: 呼び出し可能
(非同期版)またはnil
(同期版)err
: nil
または文字列
success
: ブール値
またはnil
futime(2)
に相当します。ブール値
または失敗
uv_fs_t userdata
path
: 文字列
atime
: 数値
mtime
: 数値
callback
: 呼び出し可能
(非同期版)またはnil
(同期版)err
: nil
または文字列
success
: ブール値
またはnil
lutime(2)
に相当します。ブール値
または失敗
uv_fs_t userdata
path
: 文字列
new_path
: 文字列
callback
: 呼び出し可能
(非同期版)またはnil
(同期版)err
: nil
または文字列
success
: ブール値
またはnil
link(2)
に相当します。ブール値
または失敗
uv_fs_t userdata
path
: 文字列
new_path
: 文字列
flags
: テーブル
、整数
、またはnil
dir
: 真偽値
junction
: 真偽値
callback
: 呼び出し可能
(非同期版)またはnil
(同期版)err
: nil
または文字列
success
: ブール値
またはnil
symlink(2)
に相当します。flags
パラメータが省略された場合、3番目のパラメータはcallback
として扱われます。ブール値
または失敗
uv_fs_t userdata
path
: 文字列
callback
: 呼び出し可能
(非同期版)またはnil
(同期版)err
: nil
または文字列
path
: 文字列
またはnil
readlink(2)
に相当します。文字列
または失敗
uv_fs_t userdata
path
: 文字列
callback
: 呼び出し可能
(非同期版)またはnil
(同期版)err
: nil
または文字列
path
: 文字列
またはnil
realpath(3)
に相当します。文字列
または失敗
uv_fs_t userdata
path
: 文字列
uid
: 整数
gid
: 整数
callback
: 呼び出し可能
(非同期版)またはnil
(同期版)err
: nil
または文字列
success
: ブール値
またはnil
chown(2)
に相当します。ブール値
または失敗
uv_fs_t userdata
fd
: 整数
uid
: 整数
gid
: 整数
callback
: 呼び出し可能
(非同期版)またはnil
(同期版)err
: nil
または文字列
success
: ブール値
またはnil
fchown(2)
に相当します。ブール値
または失敗
uv_fs_t userdata
fd
: 整数
uid
: 整数
gid
: 整数
callback
: 呼び出し可能
(非同期版)またはnil
(同期版)err
: nil
または文字列
success
: ブール値
またはnil
lchown(2)
に相当します。ブール値
または失敗
uv_fs_t userdata
path
: 文字列
new_path
: 文字列
flags
: テーブル
、整数
、またはnil
excl
: 真偽値
ficlone
: 真偽値
ficlone_force
: 真偽値
callback
: 呼び出し可能
(非同期版)またはnil
(同期版)err
: nil
または文字列
success
: ブール値
またはnil
flags
パラメータが省略された場合、3番目のパラメータはcallback
として扱われます。ブール値
または失敗
uv_fs_t userdata
path
: 文字列
callback
: 呼び出し可能
(非同期版)またはnil
(同期版)err
: nil
または文字列
dir
: luv_dir_t userdata
または nil
entries
: 整数
または nil
entries
パラメータは、uv.fs_readdir()の各呼び出しで返されるエントリの最大数を定義します。luv_dir_t userdata
または 失敗
uv_fs_t userdata
dir:readdir([callback])
dir
: luv_dir_t userdata
callback
: 呼び出し可能
(非同期版)またはnil
(同期版)err
: nil
または文字列
entries
: テーブル
または nil
(下記参照)luv_dir_t
を反復処理します。データテーブルのテーブルが返され、エントリ数n
は、関連付けられたuv.fs_opendir()呼び出しで使用されたentries
パラメータ以下になります。テーブル
または 失敗
[1, 2, 3, ..., n]
: テーブル
name
: 文字列
type
: 文字列
uv_fs_t userdata
dir:closedir([callback])
dir
: luv_dir_t userdata
callback
: 呼び出し可能
(非同期版)またはnil
(同期版)err
: nil
または文字列
success
: ブール値
またはnil
ブール値
または失敗
uv_fs_t userdata
path
: 文字列
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, ...)
に渡される/返される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
に渡されます。ブール値
または 失敗
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
: 呼び出し可能
(非同期版)または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
: string
port
: 整数
または nil
socktype
: 文字列
protocol
: 文字列
canonname
: 文字列
または nil
uv_getaddrinfo_t userdata
または 失敗
address
: テーブル
ip
: 文字列
または nil
port
: 整数
または nil
family
: 文字列
または 整数
または nil
callback
: 呼び出し可能
(非同期版)またはnil
(同期版)err
: nil
または文字列
host
: 文字列
または nil
service
: 文字列
または nil
getnameinfo(3)
と同等です。family
は"unix"
、"inet"
、"inet6"
、"ipx"
、"netlink"
、"x25"
、"ax25"
、"atmpvc"
、"appletalk"
、または"packet"
のいずれかでなければなりません。文字列, 文字列
または 失敗
uv_getnameinfo_t userdata
または 失敗
options
: テーブル
または nil
stack_size
: 整数
または nil
entry
: 関数
または 文字列
...
: entry
に渡されるthreadargs
luv_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 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で実行できるかどうかを表すブール値であるテーブルでなければなりません。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 userdata
mask_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 userdata
priority
: 数値
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_t
thread:join()
thread
: luv_thread_t userdata
thread
がエントリ関数の実行を終了するのを待ちます。ブール値
または 失敗
msec
: 整数
string
または fail
string
または fail
cwd
: 文字列
cwd
を使用して現在の作業ディレクトリを設定します。0
または 失敗
string
または fail
title
: 文字列
title
を使用して現在のプロセスのタイトルを設定します。0
または 失敗
数値
数値
数値
uv.get_free_memory()
とは異なります。そのような制約がない場合、または制約が不明な場合、返される量はuv.get_free_memory()
と同じになります。数値
整数
または失敗
table
または fail
utime
: テーブル
(使用されたユーザー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
: string
clock_id
には、文字列"monotonic"
または"realtime"
を指定できます。table
または fail
sec
: integer
nsec
: integer
数値
または 失敗
[flags] handle-type handle-address
です。flagsは、参照されている場合はR
、アクティブな場合はA
、内部の場合はI
です。fd
: 整数
fd
で使用するストリームの種類を検出するために使用されます。通常、これは初期化中にstdioストリームの種類を推測するために使用されます。文字列
gettimeofday(2)
のクロスプラットフォーム実装です。unix時刻の秒とマイクロ秒をペアとして返します。integer, integer
または fail
ip
、family
、netmask
、internal
、mac
フィールドを持つアドレス情報の配列です。table
[name(s)]
: table
ip
: string
family
: string
netmask
: string
internal
: boolean
mac
: string
ifindex
: integer
if_indextoname(3)
のIPv6対応実装です。string
または fail
ifindex
: integer
ifindex
を文字列として返します。その他のプラットフォームでは、uv.if_indextoname()が使用されます。string
または fail
number, number, number
table
sysname
: string
release
: string
version
: string
machine
: string
文字列
name
: string
size
: integer
(デフォルト = LUAL_BUFFERSIZE
)name
で指定された環境変数を文字列として返します。内部バッファサイズはsize
を定義することで設定できます。省略された場合、LUAL_BUFFERSIZE
が使用されます。環境変数が内部バッファで使用可能なストレージを超える場合、ENOBUFS
が返されます。一致する環境変数が存在しない場合、ENOENT
が返されます。string
または fail
name
: string
value
: string
name
で指定された環境変数を文字列value
で設定します。ブール値
または 失敗
name
: string
name
で指定された環境変数をアンセットします。ブール値
または 失敗
table
string
または fail
string
または fail
table
username
: string
uid
: 整数
gid
: 整数
shell
: string
homedir
: string
数値
数値
pid
: 整数
pid
で指定されたプロセスのスケジューリング優先順位を返します。数値
または 失敗
pid
: 整数
priority
: integer
pid
で指定されたプロセスのスケジューリング優先順位を設定します。priority
の範囲は-20(高優先度)から19(低優先度)です。ブール値
または 失敗
len
: integer
flags
: nil
(下記参照)callback
: 呼び出し可能
(非同期版)またはnil
(同期版)err
: nil
または文字列
bytes
: string
または nil
len
の文字列を埋めます。flags
は将来の拡張のために予約されており、現在はnil
または0
または{}
でなければなりません。len
より少ないランダムバイトしか使用できない場合、非ゼロのエラー値が返されるか、コールバックに渡されます。コールバックが省略された場合、この関数は同期的に完了します。文字列
または失敗
0
または fail
errcode
: integer
err
とname
を参照)を返します。UnixではPOSIXエラーコード(errnoに格納されているもの)、WindowsではWin32エラーコード(GetLastError()またはWSAGetLastError()によって返されるもの)。string, string
または nil
epoll_wait
)でアイドル状態であった時間を取得します。この呼び出しはスレッドセーフです。"metrics_idle_time"
を使用してloop_configure
を呼び出すまで、イベントプロバイダのアイドル時間を累積しません。数値
prepare
コールバック(uv.new_prepare()、uv.prepare_start()を参照)でこれらのメトリクスを取得することをお勧めします。table
loop_count
: integer
events
: integer
events_waiting
: integer