View source code
Display the source code in std/process.d from which this page was generated on github.
Report a bug
If you spot a problem with this page, click here to create a Bugzilla issue.
Improve this page
Quickly fork, edit online, and submit a pull request for this page. Requires a signed-in GitHub account. This works well for small changes. If you'd like to make larger changes you may want to consider using local clone.

Function std.process.execute

Executes the given program or shell command and returns its exit code and output.

auto Tuple!(int,"status",string,"output") execute (
  scope const(char[])[] args,
  const(string[string]) env = cast(const(string[string]))null,
  Config config = cast(Config)0,
  ulong maxOutput = 18446744073709551615LU,
  scope const(char)[] workDir = null
) @trusted;

auto Tuple!(int,"status",string,"output") execute (
  scope const(char)[] program,
  const(string[string]) env = cast(const(string[string]))null,
  Config config = cast(Config)0,
  ulong maxOutput = 18446744073709551615LU,
  scope const(char)[] workDir = null
) @trusted;

execute and executeShell start a new process using spawnProcess and spawnShell, respectively, and wait for the process to complete before returning. The functions capture what the child process prints to both its standard output and standard error streams, and return this together with its exit code.

auto dmd = execute(["dmd", "myapp.d"]);
if (dmd.status != 0) writeln("Compilation failed:\n", dmd.output);

auto ls = executeShell("ls -l");
if (ls.status != 0) writeln("Failed to retrieve file listing");
else writeln(ls.output);

The args/program/command, env and config parameters are forwarded straight to the underlying spawn functions, and we refer to their documentation for details.


args An array which contains the program name as the zeroth element and any command-line arguments in the following elements. (See spawnProcess for details.)
program The program name, without command-line arguments. (See spawnProcess for details.)
command A shell command which is passed verbatim to the command interpreter. (See spawnShell for details.)
env Additional environment variables for the child process. (See spawnProcess for details.)
config Flags that control process creation. See Config for an overview of available flags, and note that the retainStd... flags have no effect in this function.
maxOutput The maximum number of bytes of output that should be captured.
workDir The working directory for the new process. By default the child process inherits the parent's working directory.
shellPath The path to the shell to use to run the specified program. By default this is nativeShell.


An Tuple!(int, "status", string, "output").

POSIX specific

If the process is terminated by a signal, the status field of the return value will contain a negative number whose absolute value is the signal number. (See wait for details.)


ProcessException on failure to start the process.
StdioException on failure to capture output.


Lars Tandle Kyllingstad, Steven Schveighoffer, Vladimir Panteleev


Boost License 1.0.