diff options
author | Boris Kolpackov <boris@codesynthesis.com> | 2017-12-14 14:24:38 +0200 |
---|---|---|
committer | Karen Arutyunov <karen@codesynthesis.com> | 2017-12-15 13:38:33 +0300 |
commit | 53b4f58c78e21cbc442891c2ce2a2b99a32e47bc (patch) | |
tree | f2b892650367a44332d7a169ede8aa9e60e6a3c8 /libbutl/process.ixx | |
parent | ceb8f4abba2cfc7ac51385fa59693c641151c8d2 (diff) |
Add process::pipe struct, extend process API
Diffstat (limited to 'libbutl/process.ixx')
-rw-r--r-- | libbutl/process.ixx | 24 |
1 files changed, 24 insertions, 0 deletions
diff --git a/libbutl/process.ixx b/libbutl/process.ixx index fb076cf..a0e2de6 100644 --- a/libbutl/process.ixx +++ b/libbutl/process.ixx @@ -137,6 +137,19 @@ namespace butl } inline process:: + process (const process_path& pp, const char* args[], + int in, int out, int err, + const char* cwd, + const char* const* envvars) + : process (pp, + args, + pipe (in, -1), pipe (-1, out), pipe (-1, err), + cwd, + envvars) + { + } + + inline process:: process (const char* args[], int in, int out, int err, const char* cwd, @@ -144,6 +157,17 @@ namespace butl : process (path_search (args[0]), args, in, out, err, cwd, envvars) {} inline process:: + process (const process_path& pp, const char* args[], + process& in, int out, int err, + const char* cwd, + const char* const* envvars) + : process (pp, args, in.in_ofd.get (), out, err, cwd, envvars) + { + assert (in.in_ofd.get () != -1); // Should be a pipe. + in.in_ofd.reset (); // Close it on our side. + } + + inline process:: process (const char* args[], process& in, int out, int err, const char* cwd, |