next up previous contents index
Next: Execvp Up: Functions and procedures Previous: Execv

Execve

   

Declaration:

Procedure Execve (Path : pathstr; args,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:

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, Execv, Execvp Execle, Execl, Execlp, Fork, execve (2)

Example
Program Example7;

{ Program to demonstrate the Execve function. }

Uses linux, 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.



Michael Van Canneyt
Thu Sep 10 13:59:33 CEST 1998