[<<Previous Entry] [^^Up^^] [Next Entry>>] [Menu] [About The Guide]
spawnvpe()               Execute Program Using Arg Array, PATH, Environment

 #include   <process.h>
 #include   <stdio.h>

 int        spawnvpe(modeflag,pathname,argv,envp);
 int        modeflag;                    Execution mode for parent process
 char       *pathname;                   Path name of file to be executed
 char       *argv[];                     Array of pointers to arguments
 char       *envp[];                     Array of pointers to environment
                                         settings

    spawnvpe() operates identically to spawnve(), with one exception:  If
    'pathname' is not found as described in spawnve(), then spawnvpe()
    will use the DOS PATH to continue the search for pathname.  With that
    single exception, the two functions are identical; see spawnve() for
    a complete description.

  -------------------------------- Example ---------------------------------

    The following statements transfer execution to the child process
    "child.exe" and pass it the three arguments "child", "arg1", and
    "arg2".  "child.exe" will be found in the current directory or any
    PATH directory.  If "child.exe" is found, the PATH environment
    variable is set to "C:\\TEST" for the child process.  The exit status
    of the child is printed upon return.

        #include <process.h>    /* for 'spawnvpe' and 'P_WAIT' */
        #include <stdio.h>      /* for 'printf' and 'NULL' */
        #include <stdlib.h>     /* for 'errno' */
        #include <errno.h>      /* for 'ENOENT' and 'ENOMEM' */

        char *args[] = {"child", "arg1", "arg2", NULL};
        char *env[] = {"PATH=C:\\TEST", NULL};

        main()
        {
            int result;

            result = spawnvpe(P_WAIT, "child.exe", args, env);
            if (result != -1)
                printf("exit status of child.exe = %d\n", result);
            else {
                if (errno == ENOENT) {
                    printf("child.exe not found in current directory,\n");
                    printf("  or in any PATH directory.\n");
                } else if (errno == ENOMEM)
                    printf("not enough memory to execute child.exe\n");
                else
                    printf("error #%d trying to spawn child.exe\n", errno);
            }
        }

See Also: spawnve() spawn...() exec...()
This page created by ng2html v1.05, the Norton guide to HTML conversion utility. Written by Dave Pearson