Как system () работает в Linux? - PullRequest
8 голосов
/ 16 мая 2009

Я читал его справочную страницу, но пока не смог понять, как это работает. При вызове system () разветвляется ли новый дочерний процесс и исполняется ли в нем двоичная оболочка exec ()? Это может быть глупое предположение, хотя.

Ответы [ 2 ]

11 голосов
/ 16 мая 2009

Да, system () по сути является fork () и exec () "sh -c" для переданной командной строки. Пример реализации (из eglibc, недавно разветвленный из glibc) можно найти здесь .

2 голосов
/ 16 мая 2009

Да, система ("foo bar") эквивалентна execv ("/ bin / sh", ["sh", "-c", "foo bar"]).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...