diff options
| author | Jacob McDonnell <jacob@jacobmcdonnell.com> | 2026-04-26 16:38:00 -0400 |
|---|---|---|
| committer | Jacob McDonnell <jacob@jacobmcdonnell.com> | 2026-04-26 16:38:00 -0400 |
| commit | 97d5c458cfa039d857301e1ca7d5af3beb37131d (patch) | |
| tree | b460cd850d0537eb71806ba30358840377b27688 /static/v10/man2/exec.2 | |
| parent | b89dc2331a50c63f8b33272a5c4c61ab98abdaa3 (diff) | |
build: Better Build System
Diffstat (limited to 'static/v10/man2/exec.2')
| -rw-r--r-- | static/v10/man2/exec.2 | 288 |
1 files changed, 0 insertions, 288 deletions
diff --git a/static/v10/man2/exec.2 b/static/v10/man2/exec.2 deleted file mode 100644 index 7c1d013f..00000000 --- a/static/v10/man2/exec.2 +++ /dev/null @@ -1,288 +0,0 @@ -.TH EXEC 2 -.CT 2 proc_man -.SH NAME -execl, execv, execle, execve, execlp, execvp, exect, environ \(mi execute a file -.SH SYNOPSIS -.nf -.B int "execl(name, arg0, arg1, ..., argn, (char *)0)" -.B char *name, *arg0, *arg1, ..., *argn; -.PP -.B int execv(name, argv) -.B char *name, *argv[]; -.PP -.B "int execle(name, arg0, arg1, ..., argn, (char *)0, envp)" -.B "char *name, *arg0, *arg1, ..., *argn, *envp[];" -.PP -.B int execve(name, argv, envp) -.B char *name, *argv[], *envp[]; -.PP -.B int "execlp(name, arg0, arg1, ..., argn, (char *)0)" -.B char *name, *arg0, *arg1, ..., *argn; -.PP -.B int execvp(name, argv) -.B char *name, *argv[]; -.PP -.B int exect(name, argv, envp) -.B char *name, *argv[], *envp[]; -.PP -.B extern char **environ; -.fi -.SH DESCRIPTION -.I Exec -in all its forms -overlays the calling process with the named file, then -transfers to the -entry point of the image of the file. -There can be no return from a successful -.IR exec ; -the calling image is lost. -.PP -Files remain open across -.I exec -unless explicit arrangement has been made; -see -.IR ioctl (2). -Signals that are caught (see -.IR signal (2)) -are reset -to their default values. -Other signals' behavior is unchanged. -.PP -Each user has a -.I real -userid and groupid and an -.I effective -userid and groupid. -The real userid (groupid) -identifies the person using the system; -the effective userid (groupid) -determines access privileges. -.I Exec -changes the effective userid and groupid to -the owner of the executed file if the file has the set-userid -or set-groupid modes. -The real userid is not affected. -.PP -The security label (see -.IR getflab (2)) -of the process is set as follows. -If any arguments or environment parameters are present, -or if and file descriptor numbers greater than 3 are in use, -the lattice value of the process label -is ascribed to them, otherwise lattice bottom. -This value is ORed with the lattice value of -the executed file to obtain the new lattice value for the process. -If the new lattice value does not dominate the old,รย -the permission mask (see -.IR umask (2)) -is set to 022. -.PP -Process licenses persist. -In the simplest case, the process obtains from the -file the capabilities -for which the process has licenses; see -.IR getplab (2). -The detailed computation for process capabilities is: -Nominal capabilities are determined -by ANDing the file capabilities with the -capabilities in the file system ceiling (see -.IR mount (2)) -and then ORing with built-in minima. -Nominal licenses are determined by ANDing the file licenses -with the licenses in the file system -ceiling and with built-in maxima. -Process capabilities are set by ORing the -process licenses with the nominal licenses, then ANDing -with the nominal capabilities. -.PP -The builtin minimum file capabilities are all 0. -The builtin maximum file licenses for -.B T_SETPRIV -and -.B T_LOG -are 0; the rest are 1. -.B -.PP -The -.I name -argument -is a pointer to the name of the file -to be executed. -If the first two bytes of that file are the ASCII -characters -.LR #! , -then the first line of the file is taken to be ASCII and -determines the name of the program to execute. -The first nonblank string following -.L #! -in that line is substituted for -.I name. -Any second string, separated from the first by blanks or tabs, -is inserted between -the first two arguments (arguments 0 and 1) passed to the invoked file. -.PP -The argument pointers -.I arg0, arg1, ... -or the pointers in -.I argv -address null-terminated strings. -Conventionally argument 0 -is the name of the -file. -.PP -.I Execl -is useful when a known file with known arguments is -being called; -the arguments to -.I execl -are the character strings -constituting the file and the arguments. -.PP -.I Execv -is useful when the number of arguments is unknown -in advance; -the arguments to -.I execv -are the name of the file to be -executed and a vector of strings containing -the arguments. -The last argument string must be followed -by a 0 -pointer. -.PP -When a C program is executed, -it is called as follows: -.IP -.EX -main(argc, argv, envp) -int argc; -char **argv, **envp; -.EE -.PP -where -.IR argc "" -is the argument count -and -.IR argv "" -is an array of character pointers -to the arguments themselves. -Conventionally -.I argc -is at least 1 -and -.B argv[0] -points to -the name of the file. -.PP -.I Argv -is directly usable in another -.I execv -because -.BR argv[argc]==0 . -.PP -.I Envp -is a pointer to an array of strings that constitute -the -.I environment -of the process. -Each string conventionally consists of a name, an -.LR = , -and a null-terminated value; -or a name, a pair of parentheses -.LR (), -a value bracketed by -.L { -and -.LR } , -and a null character. -The array of pointers is terminated by a null pointer. -The shell -.IR sh (1) -passes an environment entry for each global shell variable -defined when the program is called. -See -.IR environ (5) -for some conventionally -used names. -.PP -The C run-time start-off routine places a copy of -.I envp -in the global cell -.I environ, -which is used -by -.I execv -and -.I execl -to pass the environment to any subprograms executed by the -current program. -The -.I exec -routines use lower-level routines as follows -to pass an environment explicitly: -.IP -.nf -\fLexecve(file, argv, environ); -execle(file, arg0, arg1, . . . , argn, (char *)0, environ);\fP -.fi -.PP -.I Execlp -and -.I execvp -are called with the same arguments as -.I execl -and -.I execv, -but duplicate the shell's actions in searching for an executable -file in a list of directories given in the -.B PATH -environment variable. -.PP -.I Exect -is the same as -.I execve, -except it arranges for a stop to occur on the first instruction -of the new core image for the benefit of tracers, see -.IR proc (4). -.SH FILES -.TF /bin/sh -.TP -.F /bin/sh -shell, invoked if command file found -by -.I execlp -or -.I execvp -.SH "SEE ALSO" -.IR fork (2), -.IR environ (5) -.SH DIAGNOSTICS -.BR E2BIG , -.BR EACCES , -.BR EFAULT , -.BR EIO , -.BR ELAB , -.BR ELOOP , -.BR ENOENT , -.BR ENOEXEC , -.BR ENOMEM , -.BR ENOTDIR , -.BR ENXIO , -.BR EROFS , -.BR ETXTBSY -.SH BUGS -If -.I execvp -is called to execute a file that turns out to be a shell -command file, -and if it is impossible to execute the shell, -some of the values in -.I argv -may be modified before return. -.br -The path search of -.I execlp -and -.I execvp -does not extend to names substituted by -.LR #! . |
