@@ -56,13 +56,13 @@ clone, __clone2, clone3 \- create a child process
.PP
/* For the prototype of the raw clone() system call, see NOTES */
.PP
-.BI "long clone3(struct clone_args *" cl_args ", size_t " size );
-.fi
+.BR "#include <linux/sched.h>" " /* Definition of " "struct clone_args" " */"
+.BR "#include <sched.h>" " /* Definition of " CLONE_* " constants */"
+.BR "#include <sys/syscall.h>" " /* Definition of " SYS_* " constants */"
+.B #include <unistd.h>
.PP
-.IR Note :
-There is no glibc wrapper for
-.BR clone3 ();
-see NOTES.
+.BI "long syscall(SYS_clone3, struct clone_args *" cl_args ", size_t " size );
+.fi
.SH DESCRIPTION
These system calls
create a new ("child") process, in a manner similar to
@@ -1541,11 +1541,6 @@ One use of these systems calls
is to implement threads: multiple flows of control in a program that
run concurrently in a shared address space.
.PP
-Glibc does not provide a wrapper for
-.BR clone3 ();
-call it using
-.BR syscall (2).
-.PP
Note that the glibc
.BR clone ()
wrapper function makes some changes
The CLONE_* constants seem to be available from either <linux/sched.h> or <sched.h>, and since clone3() already includes <linux/sched.h> for 'struct clone_args', <sched.h> is not really needed, AFAICS; however, to avoid confussion, I also included <sched.h> for clone3() for consistency: clone() is getting CLONE_* from <sched.h>, and it would confuse the reader if clone3() got the same CLONE_* constants from a different header. Signed-off-by: Alejandro Colomar <alx.manpages@gmail.com> --- man2/clone.2 | 17 ++++++----------- 1 file changed, 6 insertions(+), 11 deletions(-)