You start a process by calling DosExecPgm. The process you start is a child of the calling, or parent, process and inherits many of the resources owned by the parent process, such as file handles.

DosExecPgm creates a process environment from an executable file. The target program is loaded into storage, and it begins execution.

The following code fragment starts an application named ABC:

    #define INCL_DOSPROCESS       /* Process and thread values */
    #include <os2.h>

    CHAR szFailName[CCHMAXPATH];
    RESULTCODES resc;

    DosExecPgm(szFailName,           /* Object-name buffer  */
               sizeof(szFailName),   /* Length of buffer    */
               EXEC_SYNC,            /* Sync flag           */
               (PSZ) NULL,           /* Argument string     */
               (PSZ) NULL,           /* Environment string  */
               &resc,                /* Address for result  */
               "ABC.EXE");           /* Name of application */

In this example, ABC runs synchronously (as specified by EXEC_SYNC). This means the parent process temporarily stops while the child process runs. The parent process does not continue until the child process ends.


[Back] [Next]