[Overview][Constants][Types][Procedures and functions][Variables][Index] | Reference for unit 'Unix' (#rtl)

# FpExecVPE

Execute process, search path using environment

## Declaration

Source position: unix.pp line 84

`function FpExecVPE(`
`const PathName: RawByteString;`
`args: ppchar;`
`env: ppchar`
`):cint;`

## Description

FpExecVP replaces the currently running program with the program, specified in PathName. The executable in path is searched in the path, if it isn't an absolute filename. It gives the program the options in args. This is a pointer to an array of pointers to null-terminated strings. The last pointer in this array should be nil. The environment in Env is passed to the program. On success, execvp does not return.

## Errors

Extended error information is returned by the FpGetErrno function:

sys_eacces
  File is not a regular file, or has no execute permission. A component of the path has no search permission.
sys_eperm
  The file system is mounted noexec.
sys_e2big
  Argument list too big.
sys_enoexec
  The magic number in the file is incorrect.
sys_enoent
  The file does not exist.
sys_enomem
  Not enough memory for kernel.
sys_enotdir
  A component of the path is not a directory.
sys_eloop
  The path contains a circular reference (via symlinks).

## See also

FpExecve |  | Execute process using environment
FpExecv |  | Execute process
FpExecle |  | Execute process (using argument list, environment)
FpExecl |  | Execute process (using argument list, environment)
FpExeclp |  | Execute process (using argument list, environment; search path)
FpFork |  | Create child process

## Example

    Program Example79;

    { Program to demonstrate the FpExecVP function. }

    Uses Unix, strings;

    Const Arg0 : PChar = 'ls';
          Arg1 : Pchar = '-l';

    Var PP : PPchar;

    begin
      GetMem (PP,3*SizeOf(Pchar));
      PP[0]:=Arg0;
      PP[1]:=Arg1;
      PP[2]:=Nil;
      { Execute 'ls -l', with current environment. }
      { 'ls' is looked for in PATH environment variable.}
      fpExecvp ('ls',pp);
    end.