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

FpExecVPE

Execute process, search path using environment

Declaration

Source position: unix.pp line 89

function FpExecVPE(

  const PathName: AnsiString;

  args: ppchar;

  env: ppchar

):cInt;

Description

FpExecVPreplaces the currently running program with the program, specified in PathName. The executable in pathis 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 Envis passed to the program. On success, execvpdoes not return.

Errors

Extended error information is returned by the FpGetErrnofunction:

sys_eacces
File is not a regular file, or has no execute permission. A compononent 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.