FpExecVPE
Execute process, search path using environment
Declaration
Source position: unix.pp line 114
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
Name | Description |
---|---|
FpExecl | Execute process (using argument list, environment) |
FpExecle | Execute process (using argument list, environment) |
FpExeclp | Execute process (using argument list, environment; search path) |
FpExecv | Execute process |
FpExecve | Execute process using environment |
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.