xpxSpawnProcess
FUNCTION xpxSpawnProcess (mode : INTEGER; executableName : STRING; commandLineArguments : SET OF STRING; environmentVariables : SET OF STRING; VAR exitStatus : INTEGER) rstat : INTEGER;
This function starts the execution of the specified program and it's an "direct" implements the function _spawnve in the "standard" C library.
Arguments
1 | Type | Name | Comment |
2 | INTEGER | mode |
In addition to these, there are two more option that are not available directly to the user, but can be used through their direct integer code.
|
3 | STRING | executableName | the name of the program or ".exe" file to be started. |
4 | SET OF STRING | commandLineArguments | a set of strings that specifies the "command line arguments" to the actual program to be started. This argument may be INDETERMINATE. |
5 | SET OF STRING | environmentVariables | a set of strings that specifies the environment variables to be defined for the actual program to be started. This argument may be INDETERMINATE |
6 | INTEGER | exitStatus | receives the "exit status" from the actual started program. This argument may be INDETERMINATE. |
Return Value
Error rendering macro 'excerpt-include' : User 'null' does not have permission to view the page 'US:_r_XPX_Return_Value'.
Options
Example
LOCAL case_name : STRING := 'Case 01, testing xpxSpawnProcess'; case_no : INTEGER := 1; ok : LOGICAL := TRUE; mode : INTEGER; executableName : STRING; commandLineArguments : SET OF STRING; environmentVariables : SET OF STRING; exitStatus : INTEGER; rstat : INTEGER; END_LOCAL; -- ----------------------------- -- 1a. Testing xpxSpawnProcess. -- ----------------------------- trace(case_no, '1a. Testing xpxSpawnProcess'); mode := XPX_P_WAIT; executableName := 'X:/terje/testParams.exe'; commandLineArguments[0] := 'one'; commandLineArguments[1] := 'two'; commandLineArguments[2] := 'three'; environmentVariables[0] := 'PATH=X:\terje'; rstat := xpxSpawnProcess(mode, executableName, commandLineArguments, environmentVariables, exitStatus); trace_error(::CL::, rstat, ok); ok := CheckValueExists(exitStatus, ::CL::) AND ok; ok := (exitStatus = 0) AND ok; xpxPrintf('* exitStatus = %d\n', exitStatus);
See also
Filter by label
There are no items with the selected labels at this time.