Hi Chen, On Tue, Jan 21, 2025 at 11:13:51AM +0800, Chen Linxuan wrote: > While reading the help manual for clone.2, I notice that the parent > process in the example code does not release the stack of the child > process. > > This is not a problem for the example program, but it is somewhat > misleading. > > Signed-off-by: Chen Linxuan <chenlinxuan@xxxxxxxxxxxxx> > --- > man/man2/clone.2 | 2 ++ > 1 file changed, 2 insertions(+) > > diff --git a/man/man2/clone.2 b/man/man2/clone.2 > index 3ffe8e7b8..5e6b2ef1f 100644 > --- a/man/man2/clone.2 > +++ b/man/man2/clone.2 > @@ -1910,6 +1910,8 @@ main(int argc, char *argv[]) > child commences execution in childFunc(). */ > \& > pid = clone(childFunc, stackTop, CLONE_NEWUTS | SIGCHLD, argv[1]); > + if (munmap(stack, STACK_SIZE)) > + err(EXIT_FAILURE, "munmap"); > if (pid == \-1) Would you mind clarifying why this munmap(2) call goes before the error handling of clone(2)? I'm not very familiar with clone(2). Have a lovely day! Alex > err(EXIT_FAILURE, "clone"); > printf("clone() returned %jd\[rs]n", (intmax_t) pid); > -- > 2.43.0 > -- <https://www.alejandro-colomar.es/>
Attachment:
signature.asc
Description: PGP signature