next up previous contents index
Next: FD_Clear Up: Functions and procedures Previous: Execve

Execvp

   

Declaration:

Procedure Execvp (Path : pathstr; args : ppchar) ;

Description:

Replaces the currently running program with the program, specified in path. The executable in path is searched in the path, if it isn't an absolute filename. 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, execvp 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, Execv, Execle, Execl, Execlp, Fork, execvp (3)

Example
Program Example9;

{ Program to demonstrate the Execvp function. }

Uses linux, strings;

Const Arg0 : PChar = 'ls';
      Arg1 : Pchar = '-l';
      
Var PP : PPchar;


begin
  GetMem (PP,3*SizeOf(Pchar));
  PP[0]:=Arg0;
  PP[1]:=Arg1;
  PP[3]:=Nil;
  { Execute 'ls -l', with current environment. }
  { 'ls' is looked for in PATH environment variable.}
  { Envp is defined in the system unit. }
  Execvp ('ls',pp,envp);
end.



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