【发布时间】:2017-09-01 00:42:00
【问题描述】:
这里是一个例子,忽略错误检查:
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(),我该怎么办?
【问题讨论】:
-
调用
forkin循环? -
“在 for 循环中继续运行 execve”是什么意思?是否要运行多个
/bin/ls? -
如果要执行
ls5次,需要调用fork5次。
标签: c++ linux loops fork execve