2015-01-03 23 views
1

我是python中的多線程編程的新手。exec和os.system之間的SImilarities()

有人能告訴我python中的os.system(「ls」)和「C」中的exec(「ls」)調用是否做同樣的事情? 請告訴我關於相似性和不同點。

+2

這可以通過閱讀文檔簡單地回答。從[Python文檔](https://docs.python.org/2/library/os.html#os.system):「[os.system]通過調用標準C函數system()來實現,並且相同的限制「。所以你現在需要做的就是查看兩個C函數'system'和'exec'。 –

回答

1

在C中,exec(whatever)取代當前進程的代碼,代碼從whatever。因此,它永遠不會返回。您可以使用os.execv和朋友在Python中執行相同操作 - 請參閱https://docs.python.org/2/library/os.html#process-management

os.system(whatever),另一方面手,當前進程,高層whatever在子,等待它結束,然後返回。因此,它與C中的system(whatever)相同:在forkexecwait系統調用之上的一個簡單圖層(在類Unix系統中;在基於非Unix的系統中用其他手段模擬,我相信它是唯一的其中一個是Microsoft Windows)。