2015-01-03 2 views
1

Я новичок в многопоточном программировании на python.SImilarities между exec и os.system()

Может ли кто-нибудь сказать мне, что os.system («ls») в вызове python и exec («ls») в «C» делают то же самое? Расскажите, пожалуйста, о сходствах и различиях.

+2

На это можно ответить, просто прочитав документы. Из [документов Python] (https://docs.python.org/2/library/os.html#os.system): «[os.system] реализована путем вызова стандартной системы функций C() и имеет те же ограничения ". Итак, все, что вам нужно сделать, это посмотреть на две функции C 'system' и' exec'. –

ответ

1

В 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).

Смежные вопросы