BRL-CAD
|
Routines for launching and managing applications as subprocesses. More...
Files | |
file | process.h |
Macros | |
#define | ERROR_PROCESS_ABORTED 1067L |
Enumerations | |
enum | bu_process_io_t { BU_PROCESS_STDIN , BU_PROCESS_STDOUT , BU_PROCESS_STDERR } |
enum | bu_process_create_opts { BU_PROCESS_DEFAULT = 0x0 , BU_PROCESS_OUT_EQ_ERR = 0x1 , BU_PROCESS_HIDE_WINDOW = 0x2 } |
Functions | |
DEPRECATED void | bu_process_exec (struct bu_process **info, const char *cmd, int argc, const char **argv, int out_eql_err, int hide_window) |
Wrapper for executing a sub-process. More... | |
void | bu_process_create (struct bu_process **pinfo, const char **argv, int process_creation_opts) |
Wrapper for creating a sub-process. Allocates bu_process and starts process. More... | |
DEPRECATED int | bu_process_wait (int *aborted, struct bu_process *pinfo, int wtime) |
wait for a sub-process to complete, release all process allocations, and release the process itself. More... | |
int | bu_process_wait_n (struct bu_process **pinfo, int wtime) |
wait for a sub-process to complete, release all process allocations, and release the process itself. More... | |
int | bu_process_alive (struct bu_process *pinfo) |
determine whether process is still running More... | |
int | bu_process_pending (int fd) |
determine whether there is data pending on fd More... | |
DEPRECATED int | bu_process_read (char *buff, int *count, struct bu_process *pinfo, bu_process_io_t d, int n) |
int | bu_process_read_n (struct bu_process *pinfo, bu_process_io_t d, int n, char *buff) |
Read from a process's specified output channel. More... | |
DEPRECATED FILE * | bu_process_open (struct bu_process *pinfo, bu_process_io_t d) |
FILE * | bu_process_file_open (struct bu_process *pinfo, bu_process_io_t d) |
Open and return a FILE pointer associated with the specified channel. More... | |
DEPRECATED void | bu_process_close (struct bu_process *pinfo, bu_process_io_t d) |
void | bu_process_file_close (struct bu_process *pinfo, bu_process_io_t d) |
Close any FILE pointers internally opened via bu_process_open(). More... | |
int | bu_process_fileno (struct bu_process *pinfo, bu_process_io_t d) |
Retrieve the file descriptor to the I/O channel associated with the process. More... | |
int | bu_process_pid (struct bu_process *pinfo) |
Return the pid of the subprocess. More... | |
DEPRECATED int | bu_process_args (const char **cmd, const char *const **argv, struct bu_process *pinfo) |
int | bu_process_args_n (struct bu_process *pinfo, const char **cmd, const char *const **argv) |
DEPRECATED int | bu_process_id (void) |
Return the process ID of the calling process. More... | |
int | bu_pid (void) |
Return the process ID of the calling process. More... | |
int | bu_pid_alive (int pid) |
determine whether process is still running using its ID More... | |
DEPRECATED int | bu_terminate (int process) |
terminate a given process and any children. More... | |
int | bu_pid_terminate (int pid) |
terminate a given process and any children. More... | |
int | bu_interactive (void) |
detect whether or not a program is being run in interactive mode More... | |
Routines for launching and managing applications as subprocesses.
Routines for process and sub-process management.
enum bu_process_io_t |
DEPRECATED void bu_process_exec | ( | struct bu_process ** | info, |
const char * | cmd, | ||
int | argc, | ||
const char ** | argv, | ||
int | out_eql_err, | ||
int | hide_window | ||
) |
Wrapper for executing a sub-process.
void bu_process_create | ( | struct bu_process ** | pinfo, |
const char ** | argv, | ||
int | process_creation_opts | ||
) |
Wrapper for creating a sub-process. Allocates bu_process and starts process.
[out] | pinfo | - bu_process struct to be created |
[in] | argv | - array of command line arguments to executed. Last element MUST be NULL |
[in] | process_creation_opts | - bit field for bu_process_create_opts |
DEPRECATED int bu_process_wait | ( | int * | aborted, |
struct bu_process * | pinfo, | ||
int | wtime | ||
) |
wait for a sub-process to complete, release all process allocations, and release the process itself.
int bu_process_wait_n | ( | struct bu_process ** | pinfo, |
int | wtime | ||
) |
wait for a sub-process to complete, release all process allocations, and release the process itself.
[in] | pinfo | - bu_process structure of interest |
[in] | wtime | - maximum wait time (in ms) before forcibly stopping process. NOTE: 0 is treated as INFINITE |
int bu_process_alive | ( | struct bu_process * | pinfo | ) |
determine whether process is still running
[in] | pinfo | - bu_process structure of interest |
int bu_process_pending | ( | int | fd | ) |
determine whether there is data pending on fd
[in] | fd | - file descriptor of interest |
DEPRECATED int bu_process_read | ( | char * | buff, |
int * | count, | ||
struct bu_process * | pinfo, | ||
bu_process_io_t | d, | ||
int | n | ||
) |
Read up to n bytes into buff from a process's specified output channel (fd == 1 for output, fd == 2 for err).
int bu_process_read_n | ( | struct bu_process * | pinfo, |
bu_process_io_t | d, | ||
int | n, | ||
char * | buff | ||
) |
Read from a process's specified output channel.
[in] | pinfo | - bu_process structure of interest |
[in] | d | - channel (BU_PROCESS_STDOUT, BU_PROCESS_STDERR) |
[in] | n | - max number of bytes to be read |
[out] | buff | - data read from channel |
DEPRECATED FILE* bu_process_open | ( | struct bu_process * | pinfo, |
bu_process_io_t | d | ||
) |
Open and return a FILE pointer associated with the specified file descriptor for input (0), output (1), or error (2) respectively.
Input will be opened write, output and error will be opened read.
Caller should not close these FILE pointers directly. Call bu_process_close() instead.
FILE* bu_process_file_open | ( | struct bu_process * | pinfo, |
bu_process_io_t | d | ||
) |
Open and return a FILE pointer associated with the specified channel.
Input will be opened write, output and error will be opened read.
Caller should not close these FILE pointers directly. Call bu_process_close() instead.
[in] | pinfo | - bu_process structure of interest |
[in] | d | - channel (BU_PROCESS_STDIN, BU_PROCESS_STDOUT, BU_PROCESS_STDERR) |
DEPRECATED void bu_process_close | ( | struct bu_process * | pinfo, |
bu_process_io_t | d | ||
) |
Close any FILE pointers internally opened via bu_process_open().
void bu_process_file_close | ( | struct bu_process * | pinfo, |
bu_process_io_t | d | ||
) |
Close any FILE pointers internally opened via bu_process_open().
[in] | pinfo | - bu_process structure of interest |
[in] | d | - channel (BU_PROCESS_STDIN, BU_PROCESS_STDOUT, BU_PROCESS_STDERR) |
int bu_process_fileno | ( | struct bu_process * | pinfo, |
bu_process_io_t | d | ||
) |
Retrieve the file descriptor to the I/O channel associated with the process.
[in] | pinfo | - bu_process structure of interest |
[in] | d | - channel (BU_PROCESS_STDIN, BU_PROCESS_STDOUT, BU_PROCESS_STDERR) |
int bu_process_pid | ( | struct bu_process * | pinfo | ) |
Return the pid of the subprocess.
[in] | pinfo | - bu_process structure of interest |
DEPRECATED int bu_process_args | ( | const char ** | cmd, |
const char *const ** | argv, | ||
struct bu_process * | pinfo | ||
) |
Reports one or both of the command string and the argv array used to execute the process.
The bu_process container owns all strings for both cmd and argv - for the caller they are read-only.
If either cmd or argv are NULL they will be skipped - if the caller only wants one of these outputs the other argument can be set to NULL.
[out] | cmd | - pointer to the cmd string used to launch pinfo |
[out] | argv | - pointer to the argv array used to launch pinfo |
[in] | pinfo | - the bu_process structure of interest |
int bu_process_args_n | ( | struct bu_process * | pinfo, |
const char ** | cmd, | ||
const char *const ** | argv | ||
) |
Reports one or both of the command string and the argv array used to execute the process.
The bu_process container owns all strings for both cmd and argv - for the caller they are read-only.
If either cmd or argv are NULL they will be skipped - if the caller only wants one of these outputs the other argument can be set to NULL.
[in] | pinfo | - the bu_process structure of interest |
[out] | cmd | - pointer to the cmd string used to launch pinfo |
[out] | argv | - pointer to the argv array used to launch pinfo |
DEPRECATED int bu_process_id | ( | void | ) |
int bu_pid | ( | void | ) |
Return the process ID of the calling process.
int bu_pid_alive | ( | int | pid | ) |
determine whether process is still running using its ID
[in] | pid | - process ID of interest |
DEPRECATED int bu_terminate | ( | int | process | ) |
terminate a given process and any children.
returns truthfully whether the process could be killed.
int bu_pid_terminate | ( | int | pid | ) |
terminate a given process and any children.
[in] | pid | - process ID of interest |
int bu_interactive | ( | void | ) |
detect whether or not a program is being run in interactive mode