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

# FpExecv

Execute process

## Declaration

Source position: line 0

`function FpExecv(`
`path: PChar;`
`argv: PPChar`
`):cint; function FpExecv(`
`path: AnsiString;`
`argv: PPChar`
`):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 compononent of the path has no search permission.
sys_eperm
  The file system is mounted \textit{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
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.

Documentation generated on: Feb 26 2014