FpExecv¶
Execute process.
Declaration¶
Source position: bunxh.inc line 76
function FpExecv(path: PAnsiChar; argv: PPAnsiChar) : cint;
function FpExecv(const path: RawByteString; argv: PPAnsiChar) : cint;
Description¶
Replaces the currently running program with the program, specified in path. It gives the program the options in argvp. This is a pointer to an array of pointers to null-terminated strings. The last pointer in this array should be nil. The current environment is passed to the program. On success, execv does not return.
Errors¶
On error, -1 is returned. Extended error information can be retrieved with fpGetErrNo
- 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 .
- 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).
Example¶
Program Example8;
{ Program to demonstrate the Execv function. }
Uses Unix, strings;
Const Arg0 : PChar = '/bin/ls';
Arg1 : Pchar = '-l';
Var PP : PPchar;
begin
GetMem (PP,3*SizeOf(Pchar));
PP[0]:=Arg0;
PP[1]:=Arg1;
PP[3]:=Nil;
{ Execute '/bin/ls -l', with current environment }
fpExecv ('/bin/ls',pp);
end.