是否有等同于 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 包括 fork
和 vfork
,因此您可以使用其中之一。
另请参阅 this answer 以了解有关 clone
和 fork
的一些推理并阅读手册页:
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 包括 fork
和 vfork
,因此您可以使用其中之一。
另请参阅 this answer 以了解有关 clone
和 fork
的一些推理并阅读手册页: