Mercurial > cpython-lru_cache-weakref
view Lib/popen2.py @ 4566:6403c94de50d legacy-trunk
Added safeguard against failure in __del__.
| author | Guido van Rossum <guido@python.org> |
|---|---|
| date | Wed, 27 Nov 1996 19:39:58 +0000 |
| parents | 44145eeb6100 |
| children | 67995bc17f62 |
line wrap: on
line source
import os import sys import string MAXFD = 100 # Max number of file descriptors (os.getdtablesize()???) def popen2(cmd): cmd = ['/bin/sh', '-c', cmd] p2cread, p2cwrite = os.pipe() c2pread, c2pwrite = os.pipe() pid = os.fork() if pid == 0: # Child os.close(0) os.close(1) if os.dup(p2cread) <> 0: sys.stderr.write('popen2: bad read dup\n') if os.dup(c2pwrite) <> 1: sys.stderr.write('popen2: bad write dup\n') for i in range(3, MAXFD): try: os.close(i) except: pass try: os.execv(cmd[0], cmd) finally: os._exit(1) # Shouldn't come here, I guess os._exit(1) os.close(p2cread) tochild = os.fdopen(p2cwrite, 'w') os.close(c2pwrite) fromchild = os.fdopen(c2pread, 'r') return fromchild, tochild
