Вопрос по c, linux – Неблокирующая версия системы ()

19

Я хочу запустить процесс из моей c-программы, но я не хочу ждать завершения этой программы. Я могу запустить этот процесс, используя system (), но это всегда ждет. Кто-нибудь знает о «неблокирующем»? версия, которая вернется, как только процесс будет запущен?

[Правка - Дополнительное требование] Когда исходный процесс завершится, дочерний процесс должен продолжить работу.

Error: User Rate Limit Exceededsystem()Error: User Rate Limit Exceeded puk

Ваш Ответ

5   ответов
19

Error: User Rate Limit Exceeded

 system("ls -l &");

Error: User Rate Limit Exceeded

7

.

Error: User Rate Limit ExceededorError: User Rate Limit Exceeded
16

fork()exec()waitpid()?

// ... your app code goes here ...
pid = fork();
if( pid < 0 )
    // error out here!
if( !pid && execvp( /* process name, args, etc. */ )
    // error in the child proc here!
// ...parent execution continues here...
Error: User Rate Limit Exceeded
Error: User Rate Limit Exceeded Simon Hodgson
Error: User Rate Limit Exceeded
Error: User Rate Limit Exceeded
Error: User Rate Limit Exceeded Simon Hodgson
1

0

pid = fork();

if (!pid)
{
    system("command here &");
}

exit(0);

why

Error: User Rate Limit Exceeded
Error: User Rate Limit Exceeded

Похожие вопросы