是否有等同于 macOS 上的 clone() 系统调用?

Is there an equivalent to the clone() syscall on macOS?

As the one in Linux,其中我可以将我想在子进程中执行的函数、要使用的内存等作为参数传递。我附上一个例子,我正在尝试开始一个子进程将使用 stack_memory().

中分配的内存执行 chld_func 函数
#include <iostream>
#include <sched.h>
#include <sys/types.h>
#include <unistd.h>
#include <sys/wait.h>

// ...

int main(int argc, char** argv)
{
    printf("Hello, World! (parent)\n");

    clone(chld_func, stack_memory(), SIGCHLD, 0);
    wait(nullptr);

    return EXIT_SUCCESS;
}

也许我可以尝试使用 fork() 做类似的事情,但我不知道从哪里开始。

提前致谢!

如前所述 here and here clone 特定于 Linux。

macOS system calls you can do 包括 forkvfork,因此您可以使用其中之一。

另请参阅 this answer 以了解有关 clonefork 的一些推理并阅读手册页: