#!/usr/bin/env python # -*- encoding: utf8 -*- import os, sys print "I'm going to fork now - the child will write something to a pipe, and the parent will read it back" r, w = os.pipe() # r,w是文件描述符, 不是文件对象 pid = os.fork() if pid: # 父进程 os.close(w) # 关闭一个文件描述符 r = os.fdopen(r) # 将r转化为文件对象 print "parent: reading" txt = r.read() os.waitpid(pid, 0) # 确保子进程被撤销 else: # 子进程 os.close(r) w = os.fdopen(w, 'w') print "child: writing" w.write("here's some text from the child") w.close() print "child: closing" sys.exit(0) print "parent: got it; text =", txt