28 #ifndef CYPRESS_PROCESS_HPP 29 #define CYPRESS_PROCESS_HPP 53 std::unique_ptr<ProcessImpl> impl;
72 static void generic_pipe(std::istream &input, std::ostream &output);
84 const std::atomic<bool> &done);
94 Process(
const std::string &cmd,
const std::vector<std::string> &args,
95 bool do_redirect =
true);
180 static int exec(
const std::string &cmd,
181 const std::vector<std::string> &args, std::ostream &cout,
183 const std::string &input = std::string());
198 static int exec(
const std::string &cmd,
199 const std::vector<std::string> &args, std::istream &cin,
200 std::ostream &cout, std::ostream &cerr);
211 const std::vector<std::string> &args);
224 static std::tuple<int, std::string, std::string>
exec(
225 const std::string &cmd,
const std::vector<std::string> &args,
226 const std::string &input = std::string());
static void generic_writer(Process &proc, std::istream &input)
static int exec_no_redirect(const std::string &cmd, const std::vector< std::string > &args)
Definition: process.hpp:48
std::istream & child_stdout()
static void generic_pipe(std::istream &input, std::ostream &output)
static int exec(const std::string &cmd, const std::vector< std::string > &args, std::ostream &cout, std::ostream &cerr, const std::string &input=std::string())
std::ostream & child_stdin()
Process(const std::string &cmd, const std::vector< std::string > &args, bool do_redirect=true)
Definition: brainscales_lib.hpp:39
std::istream & child_stderr()
static void fd_input_pipe(int fd, std::ostream &output, const std::atomic< bool > &done)