Public Types |
enum | { DEFAULT_COMMAND_LINE_BUF_LEN = 1024,
NO_EXEC = 0
} |
Public Methods |
| ACE_Process_Options (int inherit_environment = 1, int command_line_buf_len = DEFAULT_COMMAND_LINE_BUF_LEN, int env_buf_len = ENVIRONMENT_BUFFER, int max_env_args = MAX_ENVIRONMENT_ARGS) |
| ~ACE_Process_Options (void) |
| Destructor.
|
int | set_handles (ACE_HANDLE std_in, ACE_HANDLE std_out = ACE_INVALID_HANDLE, ACE_HANDLE std_err = ACE_INVALID_HANDLE) |
int | setenv (const ACE_TCHAR *format, ...) |
| <format> must be of the form "VARIABLE=VALUE". There can not be any spaces between VARIABLE and the equal sign.
|
int | setenv (const ACE_TCHAR *variable_name, const ACE_TCHAR *format, ...) |
int | setenv (ACE_TCHAR *envp[]) |
| Same as above with argv format. <envp> must be null terminated.
|
void | working_directory (const char *wd) |
| Set the working directory for the process. strlen of <wd> must be <= MAXPATHLEN.
|
void | working_directory (const wchar_t *wd) |
| wchar_t version of working_directory.
|
int | command_line (const ACE_TCHAR *format, ...) |
int | command_line (const ACE_ANTI_TCHAR *format, ...) |
| Anti-TChar version of command_line (). More...
|
int | command_line (const ACE_TCHAR * const argv[]) |
| Same as above in argv format. must be null terminated.
|
void | process_name (const ACE_TCHAR *name) |
const ACE_TCHAR* | process_name (void) |
| Return the process_name. If the <process_name(name)> set method is not called, this method will return argv[0].
|
u_long | creation_flags (void) const |
| Get the creation flags. Set the creation flags.
|
void | creation_flags (u_long) |
ACE_TCHAR* | working_directory (void) |
| Current working directory. Returns "" if nothing has been set.
|
ACE_TCHAR* | command_line_buf (int *max_len = 0) |
| Buffer of command-line options. Returns exactly what was passed to this->command_line. If
- max_len is not 0, receives the maximum length of the command line buffer.
|
ACE_TCHAR* const* | command_line_argv (void) |
ACE_TCHAR* | env_buf (void) |
pid_t | getgroup (void) const |
| On UNIX, these methods are used by the to manage groups of processes.
|
pid_t | setgroup (pid_t pgrp) |
int | handle_inheritence (void) |
| Default is TRUE. Allows disabling of handle inheritence.
|
void | handle_inheritence (int) |
int | pass_handle (ACE_HANDLE) |
| Cause the specified handle to be passed to a child process when it runs a new program image. More...
|
int | dup_handles (ACE_Handle_Set &set) const |
| Get a copy of the handles the ACE_Process_Options duplicated for the spawned process. More...
|
int | passed_handles (ACE_Handle_Set &set) const |
| Get a copy of the handles passed to the spawned process. This will be the set of handles previously passed to
More...
|
void | avoid_zombies (int) |
| Set value for avoid_zombies (has no real effect except on *nix). Get current value for avoid_zombies.
|
int | avoid_zombies (void) |
ACE_TEXT_STARTUPINFO* | startup_info (void) |
| Used for setting and getting.
|
LPSECURITY_ATTRIBUTES | get_process_attributes (void) const |
| Get the process_attributes. Returns NULL if set_process_attributes has not been set.
|
LPSECURITY_ATTRIBUTES | set_process_attributes (void) |
| If this is called, a non-null process attributes is sent to CreateProcess.
|
LPSECURITY_ATTRIBUTES | get_thread_attributes (void) const |
| Get the thread_attributes. Returns NULL if set_thread_attributes has not been set.
|
LPSECURITY_ATTRIBUTES | set_thread_attributes (void) |
| If this is called, a non-null thread attributes is sent to CreateProcess.
|
Protected Types |
enum | { MAX_COMMAND_LINE_OPTIONS = 128,
ENVIRONMENT_BUFFER = 16 * 1024,
MAX_ENVIRONMENT_ARGS = 512
} |
Protected Methods |
int | setenv_i (ACE_TCHAR *assignment, int len) |
| Add to environment_buf_ and adjust environment_argv_. <len> is the strlen of .
|
void | inherit_environment (void) |
| Helper function to grab win32 environment and stick it in environment_buf_ using this->setenv_i.
|
Protected Attributes |
int | inherit_environment_ |
| Whether the child process inherits the current process environment.
|
u_long | creation_flags_ |
| Default 0.
|
int | avoid_zombies_ |
| Avoid zombies for spawned processes.
|
int | environment_inherited_ |
| Ensures once only call to inherit environment.
|
ACE_TEXT_STARTUPINFO | startup_info_ |
BOOL | handle_inheritence_ |
| Default TRUE.
|
LPSECURITY_ATTRIBUTES | process_attributes_ |
| Pointer to security_buf1_.
|
LPSECURITY_ATTRIBUTES | thread_attributes_ |
| Pointer to security_buf2_.
|
SECURITY_ATTRIBUTES | security_buf1_ |
| Data for process_attributes_.
|
SECURITY_ATTRIBUTES | security_buf2_ |
| Data for thread_attributes_.
|
int | set_handles_called_ |
| Is 1 if stdhandles was called.
|
int | environment_buf_index_ |
| Pointer into environment_buf_. This should point to the next free spot.
|
int | environment_argv_index_ |
| Pointer to environment_argv_.
|
ACE_TCHAR* | environment_buf_ |
| Pointer to buffer of the environment settings.
|
int | environment_buf_len_ |
| Size of the environment buffer. Configurable.
|
ACE_TCHAR** | environment_argv_ |
| Pointers into environment_buf_.
|
int | max_environment_args_ |
| Maximum number of environment variables. Configurable.
|
int | max_environ_argv_index_ |
| Maximum index of environment_argv_ buffer.
|
ACE_TCHAR | working_directory_ [MAXPATHLEN + 1] |
| The current working directory.
|
int | command_line_argv_calculated_ |
| Ensures command_line_argv is only calculated once.
|
ACE_TCHAR* | command_line_buf_ |
| Pointer to buffer of command-line arguments. E.g., "-f foo -b bar".
|
int | command_line_buf_len_ |
| Max length of command_line_buf_.
|
ACE_TCHAR* | command_line_argv_ [MAX_COMMAND_LINE_OPTIONS] |
| Argv-style command-line arguments.
|
pid_t | process_group_ |
| Process-group on Unix; unused on Win32.
|
ACE_Handle_Set | handles_passed_ |
| Set of handles that were passed in pass_handle ().
|
ACE_Handle_Set | dup_handles_ |
| Results of duplicating handles passed in pass_handle ().
|
ACE_TCHAR | process_name_ [MAXPATHLEN + 1] |
| Pathname for the process. Relative path or absolute path or just the program name.
|
This class controls the options passed to <CreateProcess> (or <fork> and <exec>). Notice that on Windows CE, creating a process merely means instantiating a new process. You can't set the handles (since there's no stdin, stdout and stderr,) specify process/thread options, set environment,... So, basically, this class only set the command line and nothing else. Notice that on UNIX platforms, if the <setenv> is used, the <spawn> is using the <execve> system call. It means that the <command_line> should include a full path to the program file (<execve> does not search the PATH). If <setenv> is not used then, the <spawn> is using the <execvp> which searches for the program file in the PATH variable.