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) err(EXIT_FAILURE, "clone"); printf("clone() returned %jd\[rs]n", (intmax_t) pid); -- 2.43.0