import os import signal import traceback def sigquit_handler(*args): print(args) signal.signal(signal.SIGQUIT, sigquit_handler) r, w = os.pipe() read_file = os.fdopen(r, 'r') print('Writing %d bytes' % os.write(w, b'spamham')) print('Reading 20 bytes... interrupt me with SIGQUIT (^\)') try: print('Read %d bytes using file.read' % len(read_file.read(20))) except IOError as e: traceback.print_exc() print('Reading any remaining bytes...') print('reading: %r' % os.read(r, 4096))