У меня путаница вокруг функциональности vfork()
.Я читал, что в случае vfork()
родительский и дочерний процессы используются для обмена страницами между ними.Он не поддерживает функцию копирования при записи.Это означает, что если во время своего дочернего процесса временного интервала вносятся некоторые изменения, все эти изменения будут видны родительскому процессу, когда он вернется.Также было упомянуто, что системный вызов vfork()
полезен только тогда, когда дочерний процесс просто выполняет системный вызов exec
после его создания.
Допустим, дочерний процесс выполняет exec
системный вызов с ls
.Теперь, согласно вызовам exec
, программа ls
будет загружена в адресное пространство дочернего процесса.Теперь, когда запустится временной интервал родительского процесса, он может иметь другое вторжение для выполнения на своем ПК, что может привести к тому, что этот процесс будет вести себя по-разному.vfork()
Звонок полезен в таких ситуациях?