---
name: "shevek_process"
section: "3"
platform: "linux"
package: "libshevek-doc"
version: "1.4-1"
release: "Debian 8 (Jessie)"
platforms: ["linux"]
url: "https://new.carta.tech/shevek_process"
---

# shevek\_process(3)

Create a process, optionally connection its standard in- and output streams to the calling program.

## NAME

shevek::process -

Create a process, optionally connection its standard in- and output streams to the calling program.

## SYNOPSIS

`#include <process.hh>`

Inherits **shevek::refbase**.

### Public Member Functions

Glib::RefPtr\< **shevek::fd** \> **in** ()\
 *The standard input pipe, if it was requested.*  Glib::RefPtr\< **shevek::fd** \> **out** ()\
 *The standard output pipe, if it was requested.*  Glib::RefPtr\< **shevek::fd** \> **err** ()\
 *The standard error pipe, if it was requested.*  pid\_t **pid** ()\
 *The process ID.*  **~process** ()\
 *The destructor. This kills the process if it was still running.*

### Static Public Member Functions

static Glib::RefPtr\< **process** \> **create** (std::string const &command, std::list\< std::string \> &argv, bool pipe\_stdin=true, bool pipe\_stdout=true, bool pipe\_stderr=true)\
 *Create a process from a filename and an argument list.*  static Glib::RefPtr\< **process** \> **create** (std::string const &command, std::list\< std::string \> &argv, std::list\< std::string \> const &envp, bool pipe\_stdin=true, bool pipe\_stdout=true, bool pipe\_stderr=true)\
 *Create a process from a filename, an argument list and an environment.*  static Glib::RefPtr\< **process** \> **shell** (std::string const &command, bool pipe\_stdin=true, bool pipe\_stdout=true, bool pipe\_stderr=true, std::string const &sh='/bin/sh')\
 *Run a string with the shell.*  static std::string **run** (std::string const &command, std::string const &sh)\
 *Run a process and return its output.*  static Glib::RefPtr\< **process** \> **create** (std::string const &command, bool pipe\_stdin=true, bool pipe\_stdout=true, bool pipe\_stderr=true)\
 *Create a process without arguments.*  static Glib::RefPtr\< **process** \> **create** (std::string const &command, std::string const &a1, bool pipe\_stdin=true, bool pipe\_stdout=true, bool pipe\_stderr=true)\
 *Create a process with one argument.*  static Glib::RefPtr\< **process** \> **create** (std::string const &command, std::string const &a1, std::string const &a2, bool pipe\_stdin=true, bool pipe\_stdout=true, bool pipe\_stderr=true)\
 *Create a process with two arguments.*  static Glib::RefPtr\< **process** \> **create** (std::string const &command, std::string const &a1, std::string const &a2, std::string const &a3, bool pipe\_stdin=true, bool pipe\_stdout=true, bool pipe\_stderr=true)\
 *Create a process with three arguments.*  static Glib::RefPtr\< **process** \> **create** (std::string const &command, std::string const &a1, std::string const &a2, std::string const &a3, std::string const &a4, bool pipe\_stdin=true, bool pipe\_stdout=true, bool pipe\_stderr=true)\
 *Create a process with four arguments.*  static Glib::RefPtr\< **process** \> **create** (std::string const &command, std::string const &a1, std::string const &a2, std::string const &a3, std::string const &a4, std::string const &a5, bool pipe\_stdin=true, bool pipe\_stdout=true, bool pipe\_stderr=true)\
 *Create a process with five arguments.*  static Glib::RefPtr\< **process** \> **create** (std::string const &command, std::string const &a1, std::string const &a2, std::string const &a3, std::string const &a4, std::string const &a5, std::string const &a6, bool pipe\_stdin=true, bool pipe\_stdout=true, bool pipe\_stderr=true)\
 *Create a process with six arguments.*  static Glib::RefPtr\< **process** \> **create** (std::string const &command, std::string const &a1, std::string const &a2, std::string const &a3, std::string const &a4, std::string const &a5, std::string const &a6, std::string const &a7, bool pipe\_stdin=true, bool pipe\_stdout=true, bool pipe\_stderr=true)\
 *Create a process with seven arguments.*  static Glib::RefPtr\< **process** \> **create** (std::string const &command, std::string const &a1, std::string const &a2, std::string const &a3, std::string const &a4, std::string const &a5, std::string const &a6, std::string const &a7, std::string const &a8, bool pipe\_stdin=true, bool pipe\_stdout=true, bool pipe\_stderr=true)\
 *Create a process with eight arguments.*  static Glib::RefPtr\< **process** \> **create** (std::string const &command, std::string const &a1, std::string const &a2, std::string const &a3, std::string const &a4, std::string const &a5, std::string const &a6, std::string const &a7, std::string const &a8, std::string const &a9, bool pipe\_stdin=true, bool pipe\_stdout=true, bool pipe\_stderr=true)\
 *Create a process with nine arguments.*

### Additional Inherited Members

## Detailed Description

Create a process, optionally connection its standard in- and output streams to the calling program.

## Member Function Documentation

### static std::string shevek::process::run (std::string const &command, std::string const &sh)` [static]`

Run a process and return its output. A convenience function for running a process and catching its standard output in a string. This blocks until the process has exited.

### static Glib::RefPtr\<process\> shevek::process::shell (std::string const &command, boolpipe\_stdin = `true`, boolpipe\_stdout = `true`, boolpipe\_stderr = `true`, std::string const &sh = `'/bin/sh'`)` [inline]`, ` [static]`

Run a string with the shell. Note that the process is forked from the shell, and so does not get killed when the process goes away.

## Author

Generated automatically by Doxygen for libshevek from the source code.
