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

# Execve

Execute process using environment

## Declaration

Source position: line 0

`procedure Execve(`
`Path: PathStr;`
`args: ppchar;`
`ep: ppchar`
`); procedure Execve(`
`Path: AnsiString;`
`args: ppchar;`
`ep: ppchar`
`); procedure Execve(`
`path: pchar;`
`args: ppchar;`
`ep: ppchar`
`);`

## Description

Replaces the currently running program with the program, specified in path. It gives the program the options in args, and the environment in ep. They are pointers to an array of pointers to null-terminated strings. The last pointer in this array should be nil. On success, execve does not return.

## Errors

Errors are reported in LinuxError:

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

Execve |  | Execute process using environment
Execv |  | Execute process
Execvp |  | Execute process, search path
Execle |  | Execute process (using argument list, environment)
Execl |  | Execute process (using argument list)
Execlp |  | Execute process (using argument list, environment; search path)
Fork |  | Create child process

## Example

    Program Example7;

    { Program to demonstrate the Execve function. }

    Uses oldlinux, 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 }
      { Envp is defined in system.inc }
      ExecVe ('/bin/ls',pp,envp);
    end.

Documentation generated on: Feb 26 2014