Luv.PipePipes.
See Child process I/O and IPC in the user guide, and uv_pipe_t — Pipe handle in libuv.
type t = [ `Pipe ] Stream.tBinds uv_pipe_t.
Note that values of this type can also be used with functions in:
In particular, see Luv.Handle.close, Luv.Stream.accept, Luv.Stream.read_start, Luv.Stream.write.
Allocates and initializes a pipe.
Binds uv_pipe_init.
The pipe is not yet connected to anything at this point. See Luv.Pipe.bind, Luv.Stream.listen, and Luv.Pipe.connect.
Wraps an existing file descriptor in a libuv pipe.
Binds uv_pipe_open.
val pipe :
?read_flags:TCP.Flag.t list ->
?write_flags:TCP.Flag.t list ->
unit ->
(File.t * File.t, Error.t) Stdlib.resultCreates a pair of connected pipes.
In case of success, in the value (read_pipe, write_pipe), data written to write_pipe can be read from read_pipe.
?read_flags specifies flags for read_pipe. Likewise, ?write_flags specifies flags for write_pipe. The only possible flag at the moment is `NONBLOCK, which binds UV_NONBLOCK_PIPE. Both arguments are set to [`NONBLOCK] by default.
Requires Luv 0.5.7 and libuv 1.41.0.
Feature check: Luv.Require.(has pipe)
Assigns a pipe a name or an address.
Binds uv_pipe_bind2. See bind(3p).
?no_truncate binds UV_PIPE_NO_TRUNCATE, which causes this function to return EINVAL rather than truncating the path, if the path is too long.
?no_truncate and Linux abstract namespace sockets require Luv 0.5.13 and libuv 1.46.0.
Feature check: Luv.Require.(has pipe_bind2)
Connects to the pipe at the given name or address.
Binds uv_pipe_connect2. See connect(3p).
?no_truncate binds UV_PIPE_NO_TRUNCATE, which causes this function to return EINVAL rather than truncating the path, if the path is too long.
?no_truncate and Linux abstract namespace sockets require Luv 0.5.13 and libuv 1.46.0.
Feature check: Luv.Require.(has pipe_connect2)
Retrieves the name or address assigned to the given pipe.
Binds uv_pipe_getsockname. See getsockname(3p).
Retrieves the name or address of the given pipe's peer.
Binds uv_pipe_getpeername. See getpeername(3p).
val pending_instances : t -> int -> unitBinds uv_pipe_pending_instances.
val receive_handle :
t ->
[ `TCP of TCP.t -> (unit, Error.t) Stdlib.result
| `Pipe of t -> (unit, Error.t) Stdlib.result
| `None ]Receives a file descriptor over the given pipe.
File descriptors are sent using the ~send_handle argument of Luv.Stream.write2.
On the receiving end, call Luv.Stream.read_start. When that function calls its callback, there may be file descriptors in the pipe, in addition to the ordinary data provided to the callback.
To check, call this function Luv.Pipe.receive_handle in a loop until it returns `None. Each time it returns `TCP receive or `Pipe receive, create an appropriate handle using either Luv.TCP.init or Luv.Pipe.init, and call receive handle to receive the file descriptor and associate it with handle.
module Mode : sig ... endConstants for Luv.Pipe.chmod.
Sets pipe permissions.
Binds uv_pipe_chmod.
Requires libuv 1.16.0.
Feature check: Luv.Require.(has pipe_chmod)