libwreport 3.36
|
Public Member Functions | |
int | get_stdin () const |
Return the file descriptor to the stdin pipe to the child process, if configured, else -1. | |
int | get_stdout () const |
Return the file descriptor to the stdout pipe from the child process, if configured, else -1. | |
int | get_stderr () const |
Return the file descriptor to the stderr pipe from the child process, if configured, else -1. | |
void | set_stdin (int fd) |
Request to redirect the child stdin to this given file descriptor. | |
void | set_stdin (Redirect val) |
Request to redirect the child stdin according to val. | |
void | set_stdout (int fd) |
Request to redirect the child stdout to this given file descriptor. | |
void | set_stdout (Redirect val) |
Request to redirect the child stdout according to val. | |
void | set_stderr (int fd) |
Request to redirect the child stderr to this given file descriptor. | |
void | set_stderr (Redirect val) |
Request to redirect the child stderr according to val. | |
void | close_stdin () |
Close the pipe to the child process stdin. | |
void | close_stdout () |
Close the pipe from the child process stdout. | |
void | close_stderr () |
Close the pipe from the child process stderr. | |
Child (const Child &)=delete | |
Child (Child &&)=delete | |
Child & | operator= (const Child &)=delete |
Child & | operator= (Child &&)=delete |
void | fork () |
Start the child process. | |
pid_t | pid () const |
Return the PID of the subprocess, or 0 if it has not started yet. | |
int | returncode () const |
Return the return code of the subprocess; this is undefined if it has not terminated yet. | |
int | raw_returncode () const |
Return the raw return code as returned by wait(2) | |
bool | started () const |
Return true if the process has started. | |
bool | terminated () const |
Return true if the process has terminated. | |
bool | poll () |
Check if the process has terminated. Returns true if it has. | |
int | wait () |
Wait for the child process to terminate and return its return code. | |
bool | wait (int msecs) |
Wait for the child process to terminate. More... | |
void | send_signal (int sig) |
Send the given signal to the process. | |
void | terminate () |
Send SIGTERM to the process. | |
void | kill () |
Send SIGKILL to the process. | |
Static Public Member Functions | |
static std::string | format_raw_returncode (int raw_returncode) |
Format the status code returned by wait(2) | |
Protected Member Functions | |
virtual void | pre_fork () |
Function called before forking. | |
virtual void | post_fork_parent () |
Function called after fork in the parent process. | |
virtual void | post_fork_child () |
Function called after fork in the child process. | |
virtual int | main () noexcept=0 |
Main function called in the child process. More... | |
|
protectedpure virtualnoexcept |
Main function called in the child process.
Its result will be used as the return code for the process.
Implemented in wreport::subprocess::Popen.
bool wreport::subprocess::Child::wait | ( | int | msecs | ) |
Wait for the child process to terminate.
Time out after the given number of milliseconds, and return false if the timeout elapsed, true if the child exited before the timeout.
The child return code can be read with the returncode() function