Message ID | 871ro9z2rv.fsf@mid.deneb.enyo.de |
---|---|
State | New |
Headers | show |
Series | manual: Document the fexecve function | expand |
* Florian Weimer: > ----- > manual/process.texi | 13 +++++++++++++ > 1 file changed, 13 insertions(+) > > diff --git a/manual/process.texi b/manual/process.texi > index 5728bde2cb..b20ad26cbf 100644 > --- a/manual/process.texi > +++ b/manual/process.texi > @@ -405,6 +405,19 @@ be an array of strings in the same format as for the @code{environ} > variable; see @ref{Environment Access}. > @end deftypefun > > +@deftypefun int fexecve (int @var{fd}, char *const @var{argv}@t{[]}, char *const @var{env}@t{[]}) > +@standards{POSIX.1, unistd.h} > +@safety{@prelim{}@mtsafe{}@assafe{}@acsafe{}} > +This is similar to @code{execve}, but instead identifying the progam > +executable by its pathname, the file descriptor @var{fd} is used. The > +descriptor must have been opened with the @code{O_RDONLY} flag or (on > +Linux) the @code{O_PATH} flag. > + > +On Linux, @code{fexecve} can fail with an error of @code{ENOSYS} if > +@file{/proc} has not been mounted and the kernel lacks support for the > +underlying @code{execveat} system call. > +@end deftypefun > + > @deftypefun int execle (const char *@var{filename}, const char *@var{arg0}, @dots{}, char *const @var{env}@t{[]}) > @standards{POSIX.1, unistd.h} > @safety{@prelim{}@mtsafe{}@asunsafe{@ascuheap{}}@acunsafe{@acsmem{}}} I pushed this by accident, but Joseph has reviewed the patch here: <https://sourceware.org/pipermail/libc-alpha/2020-April/113290.html>
> +@deftypefun int fexecve (int @var{fd}, char *const @var{argv}@t{[]}, char *const @var{env}@t{[]}) > +@standards{POSIX.1, unistd.h} > +@safety{@prelim{}@mtsafe{}@assafe{}@acsafe{}} > +This is similar to @code{execve}, but instead identifying the progam s/instead/instead of/ s/progam/program/ Cheers, Michael
* Michael Kerrisk: >> +@deftypefun int fexecve (int @var{fd}, char *const @var{argv}@t{[]}, char *const @var{env}@t{[]}) >> +@standards{POSIX.1, unistd.h} >> +@safety{@prelim{}@mtsafe{}@assafe{}@acsafe{}} >> +This is similar to @code{execve}, but instead identifying the progam > > s/instead/instead of/ > s/progam/program/ Thanks. Here's what I'm going to push. 8<------------------------------------------------------------------8< Subject: manual: Fix typos in the fexecve description Reported by Michael Kerrisk. ----- manual/process.texi | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/manual/process.texi b/manual/process.texi index b20ad26cbf..54e65f76c6 100644 --- a/manual/process.texi +++ b/manual/process.texi @@ -408,7 +408,7 @@ variable; see @ref{Environment Access}. @deftypefun int fexecve (int @var{fd}, char *const @var{argv}@t{[]}, char *const @var{env}@t{[]}) @standards{POSIX.1, unistd.h} @safety{@prelim{}@mtsafe{}@assafe{}@acsafe{}} -This is similar to @code{execve}, but instead identifying the progam +This is similar to @code{execve}, but instead of identifying the program executable by its pathname, the file descriptor @var{fd} is used. The descriptor must have been opened with the @code{O_RDONLY} flag or (on Linux) the @code{O_PATH} flag.
diff --git a/manual/process.texi b/manual/process.texi index 5728bde2cb..b20ad26cbf 100644 --- a/manual/process.texi +++ b/manual/process.texi @@ -405,6 +405,19 @@ be an array of strings in the same format as for the @code{environ} variable; see @ref{Environment Access}. @end deftypefun +@deftypefun int fexecve (int @var{fd}, char *const @var{argv}@t{[]}, char *const @var{env}@t{[]}) +@standards{POSIX.1, unistd.h} +@safety{@prelim{}@mtsafe{}@assafe{}@acsafe{}} +This is similar to @code{execve}, but instead identifying the progam +executable by its pathname, the file descriptor @var{fd} is used. The +descriptor must have been opened with the @code{O_RDONLY} flag or (on +Linux) the @code{O_PATH} flag. + +On Linux, @code{fexecve} can fail with an error of @code{ENOSYS} if +@file{/proc} has not been mounted and the kernel lacks support for the +underlying @code{execveat} system call. +@end deftypefun + @deftypefun int execle (const char *@var{filename}, const char *@var{arg0}, @dots{}, char *const @var{env}@t{[]}) @standards{POSIX.1, unistd.h} @safety{@prelim{}@mtsafe{}@asunsafe{@ascuheap{}}@acunsafe{@acsmem{}}}