17.3.1 例

以下は最小限のプログラム例です。この例では alarm() を使って、ファイルを開く処理を待つのに費やす時間を制限します; これはそのファイルが電源の入れられていないシリアルデバイスを 表している場合に有効で、通常こうした場合には os.open() は未定義の期間ハングアップしてしまいます。ここではファイルを開く まで 5 秒間のアラームを設定することで解決しています; ファイルを 開く処理が長くかかりすぎると、アラームシグナルが送信され、 ハンドラが例外を送出するようになっています。

import signal, os

pdef handler(signum, frame):
    print 'Signal handler called with signal', signum
    raise IOError, "Couldn't open device!"

# Set the signal handler and a 5-second alarm
signal.signal(signal.SIGALRM, handler)
signal.alarm(5)

# This open() may hang indefinitely
fd = os.open('/dev/ttyS0', os.O_RDWR)  

signal.alarm(0)          # Disable the alarm
ご意見やご指摘をお寄せになりたい方は、 このドキュメントについて... をご覧ください。