if-else文を含む以下のコードがあります。私がそれを印刷すると、if部分が実行されてもelse部分が実行されたように見えます。私は猫-Aでそれを実行したとインデントが正常に見えるIF stmtがPythonで実行されたとしてもELSE stmtが実行されます
print "PRINT os.fork"
pid = os.fork()
if pid:
print "PRINT IF %d" %pid
os.close(write_fd)
self.pid2file[pid] = read_fd
else:
print "PRINT ELSE"
signal.signal(signal.SIGTERM, signal.SIG_DFL)$
ここで出力されます:
PRINT os.fork
PRINT IF 63185
PRINT ELSE
ところで、すべてのコードがループ内に存在します。
私は、この動作のための任意のアイデアに感謝
...os.fork()
で新しい子プロセスを作成しているためだ
ここではfork()を使用します。ですから、pid = 0(子)とpid = something(親)の2つのプロセスがあります。親はifブランチに入り、子はelseを入力します。 – syntonym