Я читал его справочную страницу, но пока не смог понять, как это работает. При вызове system () разветвляется ли новый дочерний процесс и исполняется ли в нем двоичная оболочка exec ()? Это может быть глупое предположение, хотя.
Да, system () по сути является fork () и exec () "sh -c" для переданной командной строки. Пример реализации (из eglibc, недавно разветвленный из glibc) можно найти здесь .
Да, система ("foo bar") эквивалентна execv ("/ bin / sh", ["sh", "-c", "foo bar"]).