python中os.wait中的OSError

时间:2012-04-03 07:54:51

标签: python operating-system fork

嗨我试图在python中执行小代码,它给出了操作系统错误。

>>> import os
>>> def child():
...     pid = os.fork()
...     if not pid:
...             for i in range(5):
...                     print i
...     return os.wait()
...
>>> child()
0
1
2
3
4
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "<stdin>", line 6, in child
OSError: [Errno 10] No child processes

我无法弄清楚它为什么会给出OSError。我用谷歌搜索它,它被指出为python 2.6或之前的bug。我正在使用python2.7。

1 个答案:

答案 0 :(得分:3)

你错过了别的。因此,您在子进程中调用os.wait()(没有自己的子进程,因此出错)。

更正后的代码:

import os
def child():
    pid = os.fork()
    if not pid:
            for i in range(5):
                    print i
    else:
        return os.wait()

child()