2017-01-17 10 views
1

呼び出し元がfd 0,1,2(stdin、out、err)およびfd = 3(a.txtという名前のファイル)およびサブプロセスを開いた場合など、サブプロセスを作成すると、呼び出し元からいくつかのfdを閉じる必要があるようです。なぜpython subprocess.Popenはclose_fdパラメータが必要ですか?

p=subprocess.Popen(cmd,shell=True,close_fds=True,stdout=None... 

のような "真close_fd =" popenのセットが、それはどういう意味:

(1)0-3は、サブプロセスで閉じられたfd?

(2)画面に印刷ラインをサブプロセス、またはによって発呼者と、その入力/出力を伝えることができるか、閉じている0-3 fdが場合:ちょうどビット混乱

p.communicate() 

。説明?

答えて

2

3のみが閉じられています。 Popen docsから:close_fdsがtrueの場合

、0、1、2を除くすべてのファイルディスクリプタは子プロセスが実行される前に が閉じられます。 (POSIXのみ)。

関連する問題