execveat.2: Use syscall(SYS_...); for system calls without a wrapper

Add <linux/fcntl.h>, which contains AT_* definitions used by
execveat().

Signed-off-by: Alejandro Colomar <alx.manpages@gmail.com>
Signed-off-by: Michael Kerrisk <mtk.manpages@gmail.com>
This commit is contained in:
Alejandro Colomar 2021-04-04 13:58:27 +02:00 committed by Michael Kerrisk
parent a380538369
commit 86970bf4d3
1 changed files with 5 additions and 9 deletions

View File

@ -28,15 +28,14 @@
execveat \- execute program relative to a directory file descriptor
.SH SYNOPSIS
.nf
.BR "#include <linux/fcntl.h>" " /* Definition of " AT_* " constants */"
.BR "#include <sys/syscall.h>" " /* Definition of " SYS_* " constants */"
.B #include <unistd.h>
.PP
.BI "int execveat(int " dirfd ", const char *" pathname ,
.BI " const char *const " argv "[], const char *const " envp [],
.BI " int " flags );
.BI "int syscall(SYS_execveat, int " dirfd ", const char *" pathname ,
.BI " const char *const " argv "[], const char *const " envp [],
.BI " int " flags );
.fi
.PP
.IR Note :
There is no glibc wrapper for this system call; see NOTES.
.\" FIXME . See https://sourceware.org/bugzilla/show_bug.cgi?id=27364
.SH DESCRIPTION
.\" commit 51f39a1f0cea1cacf8c787f652f26dfee9611874
@ -209,9 +208,6 @@ the natural idiom when using
is to set the close-on-exec flag on
.IR dirfd .
(But see BUGS.)
.PP
Glibc does not provide a wrapper for this system call; call it using
.BR syscall (2).
.SH BUGS
The
.B ENOENT