2011-07-11 32 views
0

以下代碼在windows平臺(python版本2.7.2)上返回[Errno 10] No child processesPython os.waitpid throw`[Errno 10]沒有子進程`

 
import subprocess 
import os 
pid = subprocess.Popen(["cmd"]).pid 
os.waitpid(pid, 0) 
print 'process %d finished' % pid 

相同的代碼在Linux上運行良好。

回答

1

莫比,這將與工作,但我不知道,爲什麼你的代碼是不是在Windows的一切工作看起來不錯:

import subprocess 
subp = subprocess.Popen(["cmd"]) 
subp.wait() 
print 'process %d finished' % subp.pid 
+0

是的,你的代碼工作。但我無法弄清楚我的代碼有什麼問題。你能在你的機器上重現我的問題嗎? – fwu

+0

我沒有任何Windows安裝,所以它會成爲問題。但我認爲,Windows可能不會立即分配pid,而是在分配前嘗試訪問它。 – mrbox

+1

最後我想出了爲什麼。 os.waitpid以進程句柄作爲參數,而不是進程標識符。這真是令人困惑。無論如何非常感謝。 – fwu