プラットフォーム: IRIX, Linux
pty モジュールは擬似端末(他のプロセスを実行してその制御をしている端末をプログラムで読み書きする)を制御する操作を定義しています。
擬似端末の制御はプラットフォームに強く依存するので、SGIとLinux用のコードしか存在していません。(Linux用のコードは他のプラットフォームでも動作するように作られていますがテストされていません。)
pty モジュールでは以下の関数を定義しています:
forkします。子プロセスの制御端末を擬似端末に接続します。 返り値は (pid, fd) です。子プロセスは pid として0、 fd として invalid をそれぞれ受けとります。 親プロセスは pid として子プロセスのPID、 fd として子プロセスの制御端末 (子プロセスの標準入出力に接続されている)のファイルディスクリプタを受けとります。
新しい擬似端末のペアを開きます。利用できるなら os.openpty() を使い、 利用できなければSGIと一般的なUnixシステム用のエミュレーションコードを使います。 マスター、スレーブそれぞれのためのファイルディスクリプタ、 (master, slave) のタプルを返します。
プロセスを生成して制御端末を現在のプロセスの標準入出力に接続します。 これは制御端末を読もうとするプログラムをごまかすために利用されます。
master_read と stdin_read にはファイルディスクリプタから読み込む 関数を指定してください。デフォルトでは呼ばれるたびに1024バイトずつ読み込もうとします。