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

# FpExecV

Execute process

## Declaration

Source position: unix.pp line 82

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

## Description

FpExecV replaces the currently running program with the program, specified in PathName. 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 current environment is passed to the program. On success, FpExecV 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
FpExecvp |  | Execute process, search path
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 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.