ChildProcess: document StdIo behaviors (#17553)

Add some basic documentation for the different ChildProcess.StdIo
behaviors and the fields they affect.
This commit is contained in:
Abhinav Gupta 2024-05-10 07:05:20 -07:00 committed by Andrew Kelley
parent 1216050520
commit d37182383d

View File

@ -31,10 +31,23 @@ pub const ChildProcess = struct {
allocator: mem.Allocator, allocator: mem.Allocator,
/// The writing end of the child process's standard input pipe.
/// Usage requires `stdin_behavior == StdIo.Pipe`.
/// Available after calling `spawn()`.
stdin: ?File, stdin: ?File,
/// The reading end of the child process's standard output pipe.
/// Usage requires `stdout_behavior == StdIo.Pipe`.
/// Available after calling `spawn()`.
stdout: ?File, stdout: ?File,
/// The reading end of the child process's standard error pipe.
/// Usage requires `stderr_behavior == StdIo.Pipe`.
/// Available after calling `spawn()`.
stderr: ?File, stderr: ?File,
/// Terminated state of the child process.
/// Available after calling `wait()`.
term: ?(SpawnError!Term), term: ?(SpawnError!Term),
argv: []const []const u8, argv: []const []const u8,
@ -159,10 +172,23 @@ pub const ChildProcess = struct {
Unknown: u32, Unknown: u32,
}; };
/// Behavior of the child process's standard input, output, and error
/// streams.
pub const StdIo = enum { pub const StdIo = enum {
/// Inherit the stream from the parent process.
Inherit, Inherit,
/// Pass a null stream to the child process.
/// This is /dev/null on POSIX and NUL on Windows.
Ignore, Ignore,
/// Create a pipe for the stream.
/// The corresponding field (`stdout`, `stderr`, or `stdin`)
/// will be assigned a `File` object that can be used
/// to read from or write to the pipe.
Pipe, Pipe,
/// Close the stream after the child process spawns.
Close, Close,
}; };