0

我尝试为这个python 错误调用想出一个解决方法subprocess。我认为要走的路是os.system结合使用os.waitpid. 为了测试这一点,我编写了下面的代码。system_call_test.pypid大量文本写入文件f。但是打电话os.waitpid()总是给我这个错误:OSError: [Errno 10] No child processes。所以我很难检查这个构造是否正常工作。如何确保脚本等待另一个终止。我在 Windows XP/python 2.7 上。

import os
f = r'D:\temp\called.txt'

s = os.system('C:\Python27\python.exe D:\python_spullen\system_call_test.py')
with open(f, 'r') as f_in:
    i = f_in.readline()[-4:]
    print i
    rr = os.waitpid(int(i),0)
    print rr
4

2 回答 2

1

os.system返回进程的退出代码。所以s上面已经填充并且进程已经退出。os.waitpid没有什么可以等待的。

于 2012-10-29T09:44:50.573 回答
1

system()fork()++的exec()结合waitpid()。你不应该再打电话waitpid()了。

于 2012-10-29T09:46:02.430 回答