|
|
- #!/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
|