gpt4 book ai didi

c++ - fork() 之后,如何在 for() 循环中继续运行 execve()?

转载 作者:太空宇宙 更新时间:2023-11-04 10:22:32 24 4
gpt4 key购买 nike

这是一个忽略错误检查的例子:

int main()
{
pid_t pid = fork();
if(0 == pid)
{
for(int i = 0; i < 5; ++i)
{
char* const args[] = { "/bin/ls", nullptr };
execve("/bin/ls", args, nullptr);
}
}
else if(pid > 0)
{
wait(nullptr);
}
}

如果在fork()之后执行exec(),据我所知,linux不会复制而是覆盖原来的系统。

如果我想像这样在 for() 循环中继续运行 execve(),我该怎么办?

最佳答案

exec(所有不同的形式)用提供给 exec 的可执行文件替换您当前的可执行文件,因此您在 fork 代码很重要。您需要围绕 fork 进行循环,或者说服其他程序的作者为您运行循环。

关于c++ - fork() 之后,如何在 for() 循环中继续运行 execve()?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43247473/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com