|
gwenhywfar 5.10.1
|
#include <gwenhywfar/gwenhywfarapi.h>#include <gwenhywfar/types.h>#include <gwenhywfar/syncio.h>#include <gwenhywfar/error.h>
Go to the source code of this file.
Macros | |
| #define | GWEN_PROCESS_FLAGS_DEFAULT 0 |
| #define | GWEN_PROCESS_FLAGS_REDIR_STDERR 0x00000004 |
| #define | GWEN_PROCESS_FLAGS_REDIR_STDIN 0x00000001 |
| #define | GWEN_PROCESS_FLAGS_REDIR_STDOUT 0x00000002 |
Typedefs | |
| typedef struct GWEN_PROCESS | GWEN_PROCESS |
Enumerations | |
| enum | GWEN_PROCESS_STATE { GWEN_ProcessStateNotStarted =0 , GWEN_ProcessStateRunning , GWEN_ProcessStateExited , GWEN_ProcessStateAborted , GWEN_ProcessStateStopped , GWEN_ProcessStateUnknown } |
| #define GWEN_PROCESS_FLAGS_REDIR_STDERR 0x00000004 |
| #define GWEN_PROCESS_FLAGS_REDIR_STDIN 0x00000001 |
| #define GWEN_PROCESS_FLAGS_REDIR_STDOUT 0x00000002 |
| typedef struct GWEN_PROCESS GWEN_PROCESS |
| enum GWEN_PROCESS_STATE |
States a process can assume.
| GWENHYWFAR_API void GWEN_Process_AddFlags | ( | GWEN_PROCESS * | pr, |
| uint32_t | f | ||
| ) |
Adds the given flag to the current process flags (see GWEN_PROCESS_FLAGS_REDIR_STDOUT and others)
Referenced by GWEN_Process_RunCommandWaitAndGather().

| GWENHYWFAR_API GWEN_PROCESS_STATE GWEN_Process_CheckState | ( | GWEN_PROCESS * | pr | ) |
Checks for the current state of the given process.
Referenced by _checkRunningQueue(), and GWB_BuildCmd_SetCurrentProcess().

| GWENHYWFAR_API void GWEN_Process_free | ( | GWEN_PROCESS * | pr | ) |
Frees process data. This does not stop the process represented by this data. You should only free this data after the process has terminated or if you are not interested in the result of the process (because after freeing this data there is no way to communicate with the process).
Referenced by GWB_BuildCmd_SetCurrentProcess(), and GWEN_Process_RunCommandWaitAndGather().

| GWENHYWFAR_API uint32_t GWEN_Process_GetFlags | ( | const GWEN_PROCESS * | pr | ) |
Returns the current process flags (see GWEN_PROCESS_FLAGS_REDIR_STDOUT and others)
| GWENHYWFAR_API const char * GWEN_Process_GetFolder | ( | const GWEN_PROCESS * | pr | ) |
Get working dir for the new process.
| GWENHYWFAR_API int GWEN_Process_GetResult | ( | GWEN_PROCESS * | pr | ) |
Returns the result of a process. This process must have terminated in order to return a result.
Referenced by _checkRunningQueue(), and GWEN_Process_RunCommandWaitAndGather().

| GWENHYWFAR_API GWEN_SYNCIO * GWEN_Process_GetStderr | ( | const GWEN_PROCESS * | pr | ) |
Returns a GWEN_BUFFEREDIO which can be used to read data written by the process via stderr. Returns 0 if the process does not have the flag GWEN_PROCESS_FLAGS_REDIR_STDERR set.
| GWENHYWFAR_API GWEN_SYNCIO * GWEN_Process_GetStdin | ( | const GWEN_PROCESS * | pr | ) |
Returns a GWEN_BUFFEREDIO which can be used to write data to be received by the process via stdin. Returns 0 if the process does not have the flag GWEN_PROCESS_FLAGS_REDIR_STDIN set.
| GWENHYWFAR_API GWEN_SYNCIO * GWEN_Process_GetStdout | ( | const GWEN_PROCESS * | pr | ) |
Returns a GWEN_BUFFEREDIO which can be used to read data written by the process via stdout. Returns 0 if the process does not have the flag GWEN_PROCESS_FLAGS_REDIR_STDOUT set.
| GWENHYWFAR_API GWEN_PROCESS * GWEN_Process_new | ( | void | ) |
Creates a process representation. This does not start a process, it simply prepares some data for starting a process.
Referenced by _startCommand(), and GWEN_Process_RunCommandWaitAndGather().

| GWENHYWFAR_API int GWEN_Process_RunCommandWaitAndGather | ( | const char * | prg, |
| const char * | args, | ||
| GWEN_BUFFER * | stdOutBuffer, | ||
| GWEN_BUFFER * | stdErrBuffer | ||
| ) |
Start a process which executes the given command with the given arguments, and gathers stdout of the process into the given buffer (if any).
Your application needs to install a signal handler which catches SIGCHLD.
| prg | name of the binary to run |
| args | arguments for the command (all in one string, words separated by blanks) |
| stdOutBuffer | buffer to receive stdout from the started process |
Definition at line 31 of file process_all.c.
References DBG_INFO, GWEN_ERROR_GENERIC, GWEN_ERROR_NOT_SUPPORTED, GWEN_LOGDOMAIN, GWEN_Process_AddFlags(), GWEN_PROCESS_FLAGS_REDIR_STDERR, GWEN_PROCESS_FLAGS_REDIR_STDOUT, GWEN_Process_free(), GWEN_Process_GetResult(), GWEN_Process_new(), GWEN_Process_Start(), GWEN_Process_WaitAndRead(), and GWEN_ProcessStateRunning.
Referenced by _callPkgConfig(), _checkVersion(), GWB_Tools_CheckCompilerArgs(), GWB_Tools_TryCompile(), and GWB_Tools_TryLink().


| GWENHYWFAR_API void GWEN_Process_SetFlags | ( | GWEN_PROCESS * | pr, |
| uint32_t | f | ||
| ) |
Sets the process flags to the given value (see GWEN_PROCESS_FLAGS_REDIR_STDOUT and others)
| GWENHYWFAR_API void GWEN_Process_SetFolder | ( | GWEN_PROCESS * | pr, |
| const char * | s | ||
| ) |
Set working dir for the new process.
Referenced by _startCommand().

| GWENHYWFAR_API GWEN_PROCESS_STATE GWEN_Process_Start | ( | GWEN_PROCESS * | pr, |
| const char * | prg, | ||
| const char * | args | ||
| ) |
Starts the given process.
| pr | pointer to process data |
| prg | path and name of the program to start |
| args | command line arguments for the program (MUST NOT contain the name of the program) |
Referenced by _startCommand(), and GWEN_Process_RunCommandWaitAndGather().

| GWENHYWFAR_API void GWEN_Process_SubFlags | ( | GWEN_PROCESS * | pr, |
| uint32_t | f | ||
| ) |
Removes the given flag from the current process flags (see GWEN_PROCESS_FLAGS_REDIR_STDOUT and others)
| GWENHYWFAR_API int GWEN_Process_Terminate | ( | GWEN_PROCESS * | pr | ) |
Terminates a process immediately (on POSIX systems this is performed by sending a KILL signal). This function waits for the process to terminate.
Referenced by GWB_BuildCmd_SetCurrentProcess().

| GWENHYWFAR_API int GWEN_Process_Wait | ( | GWEN_PROCESS * | pr | ) |
Waits for the termination of the given process.