import sys if len( sys.argv )<= 1: print 'ok' import os r, w= os.pipe( ) print os.write( w, 'abcde' ) print os.read( r, 1 ) import msvcrt rh= msvcrt.get_osfhandle( r ) print rh import subprocess as sub proc= sub.Popen( [ sys.executable, sys.argv[ 0 ], str( rh ) ] ) proc.wait( ) else: print 'sub' import msvcrt rh= int( sys.argv[ 1 ] ) r= msvcrt.open_osfhandle( rh, 0 ) import os buf= os.read( r, 100 ) print buf assert buf== 'bcde'