Intereting Posts
с учетом регистра gnu mv на Mac OS X Пользователи AD не могут войти через GDM / LightDM Как написать правило rsyslog для пересылки по условию на средство и с хоста? Увеличение пространства подкачки без переустановки sshd сбрасывает соединения на другом порту Htop неправильно сортирует столбец CPU% Как автоматически перемещать письма в папку СПАМ или JUNK вместо их удаления? Строка команды после команды, которая заканчивается на & – EX: nohup> log & && rm log Shell, объединяющая 2 строки для ссылки на третью переменную Есть ли способ удалить один пакет из кеша? Чтобы настроить уровни APM на жестком диске и поддерживать их после приостановки / возобновления У меня есть диск с ошибкой в ​​RAID1 btrfs, который пишет iffy, но читает в основном работу. Как его заменить? Как показать разные каталоги на поиске? Как я могу сделать пакеты nvidia на Mint 17.3 Используйте curl для загрузки списка файлов в csv

Системные вызовы exec () и system ()

Я понимаю, что, хотя exec () не возвращается после его выполнения в Unix, system () может или не может вернуться в зависимости от ситуации. Но может ли кто-нибудь объяснить, почему системный вызов exec () не возвращается, а также различия между exec ( ) и system () в операционной системе Unix

system () эквивалентна fork () + exec () + wait (); это означает, что когда функция run () запускает процесс, он создает новый процесс и ждет завершения этого процесса. Новый процесс выполняет команду в своей собственной среде, когда она завершена, вызывающий получает дочерний сигнал.

Для получения дополнительной информации man exec man system

«exec заменяет текущий образ процесса новым образцом процесса», это означает, что когда он выходит из вызывного абонента, также, когда вызывающий пользователь стал новым процессом.

Это системный вызов в операционной системе Unix, который заменяет текущий выполняемый процесс информацией из двоичной программы.