После fork (), как продолжать выполнять execve () в цикле for ()?

Вот пример, игнорирующий проверку ошибок:

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);
}
}

Если exec () после fork (), насколько я знаю, linux не будет копировать, а охватит оригинальную систему.

Что мне делать, если я хочу продолжать выполнять execve () в цикле for () следующим образом?

0

Решение

exec (все разные формы) будут замените ваш текущий исполняемый файл на тот, который дан execтак что НИЧЕГО, что вы делаете в разветвленном коде, не будет иметь значения. Вам нужно либо сделать цикл вокруг forkили убедите автора другой программы запустить цикл для вас.

1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]