exec和os.system()之间的差异

时间:2015-01-03 20:30:02

标签: python c

我是python中多线程编程的新手。

有人能告诉我python和exec(" ls")中的os.system(" ls")是否会调用" C"正在做同样的事情? 请告诉我有关的相似点和不同点。

1 个答案:

答案 0 :(得分:1)

在C中,exec(whatever) 使用whatever中的代码替换当前流程的代码。因此,它永远不会回来。您可以使用os.execv和朋友在Python中执行相同操作 - 请参阅https://docs.python.org/2/library/os.html#process-management

os.system(whatever),另一方面,分叉当前进程,在子进程中执行whatever ,等待它结束,然后回报。因此,它与system(whatever)在C中相同:在forkexecwait系统调用之上的简单层(在类Unix中)系统;在非基于Unix的系统中通过其他方式进行模拟,我认为现在这些系统中只有大量数据是Microsoft Windows)。