From 53b4f58c78e21cbc442891c2ce2a2b99a32e47bc Mon Sep 17 00:00:00 2001 From: Boris Kolpackov Date: Thu, 14 Dec 2017 14:24:38 +0200 Subject: Add process::pipe struct, extend process API --- libbutl/process.ixx | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) (limited to 'libbutl/process.ixx') 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, -- cgit v1.1