16 #include "llvm/Config/config.h"
17 #include <system_error>
27 const char **env,
const StringRef **Redirects,
28 unsigned memoryLimit, std::string *ErrMsg);
31 const StringRef **redirects,
unsigned secondsToWait,
32 unsigned memoryLimit, std::string *ErrMsg,
33 bool *ExecutionFailed) {
35 if (
Execute(PI, Program, args, envp, redirects, memoryLimit, ErrMsg)) {
37 *ExecutionFailed =
false;
39 PI, secondsToWait, secondsToWait == 0, ErrMsg);
44 *ExecutionFailed =
true;
50 const char **envp,
const StringRef **redirects,
51 unsigned memoryLimit, std::string *ErrMsg,
52 bool *ExecutionFailed) {
55 *ExecutionFailed =
false;
56 if (!
Execute(PI, Program, args, envp, redirects, memoryLimit, ErrMsg))
58 *ExecutionFailed =
true;
ProcessInfo ExecuteNoWait(StringRef Program, const char **args, const char **env=nullptr, const StringRef **redirects=nullptr, unsigned memoryLimit=0, std::string *ErrMsg=nullptr, bool *ExecutionFailed=nullptr)
Similar to ExecuteAndWait, but returns immediately.
int ExecuteAndWait(StringRef Program, const char **args, const char **env=nullptr, const StringRef **redirects=nullptr, unsigned secondsToWait=0, unsigned memoryLimit=0, std::string *ErrMsg=nullptr, bool *ExecutionFailed=nullptr)
This function executes the program using the arguments provided.
static bool Execute(ProcessInfo &PI, StringRef Program, const char **args, const char **env, const StringRef **Redirects, unsigned memoryLimit, std::string *ErrMsg)
int ReturnCode
The return code, set after execution.
This is the OS-specific separator for PATH like environment variables:
StringRef - Represent a constant reference to a string, i.e.
ProcessInfo Wait(const ProcessInfo &PI, unsigned SecondsToWait, bool WaitUntilTerminates, std::string *ErrMsg=nullptr)
This function waits for the process specified by PI to finish.