Hi Mark, On Mon, Feb 12, 2024 at 01:07:04PM +0100, Mark Wielaard wrote: > close_range is defined in unistd.h when _GNU_SOURCE is defined. > The linux/close_range.h include file only defines the (linux specific) > flags constants. The flags argument is an int, not an unsigned int, in > the glibc wrapper. Use the close_range library call in the example code > instead of syscall. > > Fixes: 71a62d6c3c56 ("close_range.2: Glibc added a wrapper recently") > Fixes: c2356ba085ed ("close_range.2: Glibc 2.34 has added a close_range() wrapper") > > Reported-by: Alexandra Hájková <ahajkova@xxxxxxxxxx> > Signed-off-by: Mark Wielaard <mark@xxxxxxxxx> Thanks for the patch! I've tweaked it a little bit, and applied it: <https://www.alejandro-colomar.es/src/alx/linux/man-pages/man-pages.git/commit/?h=contrib&id=9dc4cba62c1d19ff3aa02e062e4a0c03f5299182> Have a lovely night! Alex > --- > man2/close_range.2 | 11 +++++++---- > 1 file changed, 7 insertions(+), 4 deletions(-) > > diff --git a/man2/close_range.2 b/man2/close_range.2 > index 380a47365..53ee5524e 100644 > --- a/man2/close_range.2 > +++ b/man2/close_range.2 > @@ -11,10 +11,14 @@ Standard C library > .RI ( libc ", " \-lc ) > .SH SYNOPSIS > .nf > -.B #include <linux/close_range.h> > +.BR "#define _GNU_SOURCE" " /* See feature_test_macros(7) */" > +.B #include <unistd.h> > +.P > +.BR "#include <linux/close_range.h>" " /* Definition of " CLOSE_RANGE_* " > +.BR "" " constants */" > .P > .BI "int close_range(unsigned int " first ", unsigned int " last , > -.BI " unsigned int " flags ); > +.BI " int " flags ); > .fi > .SH DESCRIPTION > The > @@ -205,7 +209,6 @@ result from the calls to > #include <limits.h> > #include <stdio.h> > #include <stdlib.h> > -#include <sys/syscall.h> > #include <unistd.h> > \& > /* Show the contents of the symbolic links in /proc/self/fd */ > @@ -259,7 +262,7 @@ main(int argc, char *argv[]) > \& > printf("========= About to call close_range() =======\en"); > \& > - if (syscall(SYS_close_range, 3, \[ti]0U, 0) == \-1) { > + if (close_range(3, \[ti]0U, 0) == \-1) { > perror("close_range"); > exit(EXIT_FAILURE); > } > -- > 2.39.3 > -- <https://www.alejandro-colomar.es/> Looking for a remote C programming job at the moment.
Attachment:
signature.asc
Description: PGP signature