Annotation of cci/usr/src/man/man3/execl.3, revision 1.1.1.1

1.1       root        1: .TH EXECL 3 "1 April 1981"
                      2: .UC 4
                      3: .SH NAME
                      4: execl, execv, execle, execlp, execvp, exec, exece, exect, environ \- execute a file
                      5: .SH SYNOPSIS
                      6: .nf
                      7: .B execl(name, arg0, arg1, ..., argn, 0)
                      8: .B char *name, *arg0, *arg1, ..., *argn;
                      9: .PP
                     10: .B execv(name, argv)
                     11: .B char *name, *argv[];
                     12: .PP
                     13: .B "execle(name, arg0, arg1, ..., argn, 0, envp)"
                     14: .B "char *name, *arg0, *arg1, ..., *argn, *envp[];"
                     15: .PP
                     16: .B "exect(name, argv, envp)
                     17: .B "char *name, *argv[], *envp[];
                     18: .PP
                     19: .B extern char **environ;
                     20: .fi
                     21: .SH DESCRIPTION
                     22: These routines provide various interfaces to the
                     23: .I execve 
                     24: system call.  Refer to 
                     25: .IR  execve (2)
                     26: for a description of their properties; only
                     27: brief descriptions are provided here.
                     28: .PP
                     29: .I Exec
                     30: in all its forms
                     31: overlays the calling process with the named file, then
                     32: transfers to the
                     33: entry point of the core image of the file.
                     34: There can be no return from a successful exec; the calling
                     35: core image is lost.
                     36: .PP
                     37: The
                     38: .I name
                     39: argument
                     40: is a pointer to the name of the file
                     41: to be executed.
                     42: The pointers
                     43: .IR arg [ 0 ],
                     44: .IR arg [ 1 "] ..."
                     45: address null-terminated strings.
                     46: Conventionally
                     47: .IR arg [ 0 ]
                     48: is the name of the
                     49: file.
                     50: .PP
                     51: Two interfaces are available.
                     52: .I execl
                     53: is useful when a known file with known arguments is
                     54: being called;
                     55: the arguments to
                     56: .I execl
                     57: are the character strings
                     58: constituting the file and the arguments;
                     59: the first argument is conventionally
                     60: the same as the file name (or its last component).
                     61: A 0 argument must end the argument list.
                     62: .PP
                     63: The
                     64: .I execv
                     65: version is useful when the number of arguments is unknown
                     66: in advance;
                     67: the arguments to
                     68: .I execv
                     69: are the name of the file to be
                     70: executed and a vector of strings containing
                     71: the arguments.
                     72: The last argument string must be followed
                     73: by a 0 pointer.
                     74: .PP
                     75: The
                     76: .I exect
                     77: version is used when the executed file is to be
                     78: manipulated with 
                     79: .IR ptrace (2).
                     80: The program is forced to single step a single
                     81: instruction giving the parent an opportunity to
                     82: manipulate its state.  This is done
                     83: by setting the trace bit in the process status
                     84: longword.
                     85: .PP
                     86: When a C program is executed,
                     87: it is called as follows:
                     88: .PP
                     89: .nf
                     90:        main(argc, argv, envp)
                     91:        int argc;
                     92:        char **argv, **envp;
                     93: .fi
                     94: .PP
                     95: where
                     96: .I argc
                     97: is the argument count
                     98: and
                     99: .I argv 
                    100: is an array of character pointers
                    101: to the arguments themselves.
                    102: As indicated,
                    103: .I argc
                    104: is conventionally at least one
                    105: and the first member of the array points to a
                    106: string containing the name of the file.
                    107: .PP
                    108: .I Argv
                    109: is directly usable in another
                    110: .I execv
                    111: because
                    112: .IR argv [ argc ]
                    113: is 0.
                    114: .PP
                    115: .I Envp
                    116: is a pointer to an array of strings that constitute
                    117: the
                    118: .I environment
                    119: of the process.
                    120: Each string consists of a name, an \*(lq=\*(rq, and a null-terminated value.
                    121: The array of pointers is terminated by a null pointer.
                    122: The shell
                    123: .IR sh (1)
                    124: passes an environment entry for each global shell variable
                    125: defined when the program is called.
                    126: See
                    127: .IR environ (7)
                    128: for some conventionally
                    129: used names.
                    130: The C run-time start-off routine places a copy of
                    131: .I envp
                    132: in the global cell
                    133: .IR environ ,
                    134: which is used
                    135: by
                    136: .I execv
                    137: and
                    138: .I execl
                    139: to pass the environment to any subprograms executed by the
                    140: current program.
                    141: .PP
                    142: .I Execlp
                    143: and
                    144: .I execvp
                    145: are called with the same arguments as
                    146: .I execl
                    147: and
                    148: .IR execv ,
                    149: but duplicate the shell's actions in searching for an executable
                    150: file in a list of directories.
                    151: The directory list is obtained from the environment.
                    152: .SH FILES
                    153: .ta \w'/bin/sh  'u
                    154: /bin/sh        shell, invoked if command file found
                    155: by
                    156: .I execlp
                    157: or
                    158: .I execvp
                    159: .SH "SEE ALSO"
                    160: execve(2),
                    161: fork(2),
                    162: environ(7),
                    163: csh(1)
                    164: .SH DIAGNOSTICS
                    165: If the file cannot be found,
                    166: if it is not executable,
                    167: if it does not start with a valid magic number (see
                    168: .IR a.out (5)),
                    169: if maximum memory is exceeded,
                    170: or if the arguments require too much space,
                    171: a return
                    172: constitutes the diagnostic;
                    173: the return value is \-1.
                    174: Even for the super-user,
                    175: at least one of the execute-permission bits must be set for
                    176: a file to be executed.
                    177: .SH BUGS
                    178: If
                    179: .I execvp
                    180: is called to execute a file that turns out to be a shell
                    181: command file,
                    182: and if it is impossible to execute the shell,
                    183: the values of
                    184: .I argv[0]
                    185: and
                    186: .I argv[\-1]
                    187: will be modified before return.

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.