uvw 2.12.1
|
The ProcessHandle handle. More...
#include <process.h>
Public Member Functions | |
bool | init () |
Initializes the handle. | |
void | spawn (const char *file, char **args, char **env=nullptr) |
spawn Starts the process. | |
void | kill (int signum) |
Sends the specified signal to the internal process handle. | |
int | pid () noexcept |
Gets the PID of the spawned process. | |
ProcessHandle & | cwd (const std::string &path) noexcept |
Sets the current working directory for the subprocess. | |
ProcessHandle & | flags (Flags< Process > flags) noexcept |
Sets flags that control how spawn() behaves. | |
template<typename T , typename U > | |
ProcessHandle & | stdio (StreamHandle< T, U > &stream, Flags< StdIO > flags) |
Makes a stdio handle available to the child process. | |
ProcessHandle & | stdio (FileHandle fd, Flags< StdIO > flags) |
Makes a file descriptor available to the child process. | |
ProcessHandle & | uid (Uid id) |
Sets the child process' user id. | |
ProcessHandle & | gid (Gid id) |
Sets the child process' group id. | |
![]() | |
HandleCategory | category () const noexcept |
Gets the category of the handle. | |
HandleType | type () const noexcept |
Gets the type of the handle. | |
bool | active () const noexcept |
Checks if the handle is active. | |
bool | closing () const noexcept |
Checks if a handle is closing or closed. | |
void | close () noexcept |
Request handle to be closed. | |
void | reference () noexcept |
Reference the given handle. | |
void | unreference () noexcept |
Unreference the given handle. | |
bool | referenced () const noexcept |
Checks if the given handle referenced. | |
std::size_t | size () const noexcept |
Returns the size of the underlying handle type. | |
int | sendBufferSize () |
Gets the size of the send buffer used for the socket. | |
bool | sendBufferSize (int value) |
Sets the size of the send buffer used for the socket. | |
int | recvBufferSize () |
Gets the size of the receive buffer used for the socket. | |
bool | recvBufferSize (int value) |
Sets the size of the receive buffer used for the socket. | |
OSFileDescriptor | fd () const |
Gets the platform dependent file descriptor equivalent. | |
![]() | |
std::shared_ptr< R > | data () const |
Gets user-defined data. uvw won't use this field in any case. | |
void | data (std::shared_ptr< void > uData) |
Sets arbitrary data. uvw won't use this field in any case. | |
![]() | |
Loop & | loop () const noexcept |
Gets the loop from which the resource was originated. | |
const uv_process_t * | raw () const noexcept |
Gets the underlying raw data structure. | |
uv_process_t * | raw () noexcept |
Gets the underlying raw data structure. | |
![]() | |
Connection< E > | on (Listener< E > f) |
Registers a long-lived listener with the event emitter. | |
Connection< E > | once (Listener< E > f) |
Registers a short-lived listener with the event emitter. | |
void | erase (Connection< E > conn) noexcept |
Disconnects a listener from the event emitter. | |
void | clear () noexcept |
Disconnects all the listeners for the given event type. | |
void | clear () noexcept |
Disconnects all the listeners. | |
bool | empty () const noexcept |
Checks if there are listeners registered for the specific event. | |
bool | empty () const noexcept |
Checks if there are listeners registered with the event emitter. | |
Static Public Member Functions | |
static void | disableStdIOInheritance () noexcept |
Disables inheritance for file descriptors/handles. | |
static bool | kill (int pid, int signum) noexcept |
kill Sends the specified signal to the given PID. | |
![]() | |
static std::shared_ptr< ProcessHandle > | create (Args &&...args) |
Creates a new resource of the given type. | |
The ProcessHandle handle.
Process handles will spawn a new process and allow the user to control it and establish communication channels with it using streams.
|
noexcept |
Sets the current working directory for the subprocess.
path | The working directory to be used when spawn() is invoked. |
|
staticnoexcept |
Disables inheritance for file descriptors/handles.
Disables inheritance for file descriptors/handles that this process inherited from its parent. The effect is that child processes spawned by this process don’t accidentally inherit these handles.
It is recommended to call this function as early in your program as possible, before the inherited file descriptors can be closed or duplicated.
See the official documentation for further details.
|
noexcept |
Sets flags that control how spawn()
behaves.
Available flags are:
ProcessHandle::Process::SETUID
ProcessHandle::Process::SETGID
ProcessHandle::Process::WINDOWS_VERBATIM_ARGUMENTS
ProcessHandle::Process::DETACHED
ProcessHandle::Process::WINDOWS_HIDE
ProcessHandle::Process::WINDOWS_HIDE_CONSOLE
ProcessHandle::Process::WINDOWS_HIDE_GUI
See the official documentation for further details.
flags | A valid set of flags. |
ProcessHandle & uvw::ProcessHandle::gid | ( | Gid | id | ) |
Sets the child process' group id.
id | A valid group id to be used. |
bool uvw::ProcessHandle::init | ( | ) |
Initializes the handle.
|
staticnoexcept |
kill Sends the specified signal to the given PID.
pid | A valid process id. |
signum | A valid signal identifier. |
void uvw::ProcessHandle::kill | ( | int | signum | ) |
Sends the specified signal to the internal process handle.
signum | A valid signal identifier. |
|
noexcept |
Gets the PID of the spawned process.
It’s set after calling spawn()
.
void uvw::ProcessHandle::spawn | ( | const char * | file, |
char ** | args, | ||
char ** | env = nullptr ) |
spawn Starts the process.
If the process isn't successfully spawned, an ErrorEvent event will be emitted by the handle.
See the official documentation for further details.
file | Path pointing to the program to be executed. |
args | Command line arguments. |
env | Optional environment for the new process. |
ProcessHandle & uvw::ProcessHandle::stdio | ( | FileHandle | fd, |
Flags< StdIO > | flags ) |
Makes a file descriptor available to the child process.
Available flags are:
ProcessHandle::StdIO::IGNORE_STREAM
ProcessHandle::StdIO::CREATE_PIPE
ProcessHandle::StdIO::INHERIT_FD
ProcessHandle::StdIO::INHERIT_STREAM
ProcessHandle::StdIO::READABLE_PIPE
ProcessHandle::StdIO::WRITABLE_PIPE
ProcessHandle::StdIO::OVERLAPPED_PIPE
Default file descriptors are:
uvw::StdIN
for stdin
uvw::StdOUT
for stdout
uvw::StdERR
for stderr
See the official documentation for further details.
fd | A valid file descriptor. |
flags | A valid set of flags. |
|
inline |
Makes a stdio
handle available to the child process.
Available flags are:
ProcessHandle::StdIO::IGNORE_STREAM
ProcessHandle::StdIO::CREATE_PIPE
ProcessHandle::StdIO::INHERIT_FD
ProcessHandle::StdIO::INHERIT_STREAM
ProcessHandle::StdIO::READABLE_PIPE
ProcessHandle::StdIO::WRITABLE_PIPE
ProcessHandle::StdIO::OVERLAPPED_PIPE
See the official documentation for further details.
stream | A valid stdio handle. |
flags | A valid set of flags. |
ProcessHandle & uvw::ProcessHandle::uid | ( | Uid | id | ) |
Sets the child process' user id.
id | A valid user id to be used. |