В C exec(whatever)
заменяет код текущего процесса с кодом от whatever
. Таким образом, он никогда не возвращается. Вы можете сделать то же самое в Python с os.execv
и друзьями - см. https://docs.python.org/2/library/os.html#process-management.
os.system(whatever)
, на другие руки, вилки текущего процесса, EXECS whatever
в подпроцесс, ждет его до конца, а затем возвращается. Таким образом, это то же самое, что и system(whatever)
в C: простой слой поверх fork
, exec
и wait
системных вызовов (в Unix-подобных системах, имитируемых другими средствами в системах, отличных от Unix, из которых я считаю единственными в настоящее время в значительных количествах стоит Microsoft Windows).
На это можно ответить, просто прочитав документы. Из [документов Python] (https://docs.python.org/2/library/os.html#os.system): «[os.system] реализована путем вызова стандартной системы функций C() и имеет те же ограничения ". Итак, все, что вам нужно сделать, это посмотреть на две функции C 'system' и' exec'. –