diff options
Diffstat (limited to 'ext/pty/README.ja')
-rw-r--r-- | ext/pty/README.ja | 49 |
1 files changed, 18 insertions, 31 deletions
diff --git a/ext/pty/README.ja b/ext/pty/README.ja index 5ae4fb06a0..ca2a01442a 100644 --- a/ext/pty/README.ja +++ b/ext/pty/README.ja @@ -30,43 +30,30 @@ pty 拡張モジュール version 0.3 by A.ito セスIDです.この関数がイテレータとして呼ばれた場合,これらの 要素はブロックパラメータとして渡され,関数自体はnilを返します. - この関数によって作られたサブプロセスが動いている間,子プロセス - の状態を監視するために SIGCHLD シグナルを捕捉します.子プロセス - が終了したり停止した場合には,例外が発生します.この間,すべての - SIGCHLD が PTY モジュールのシグナルハンドラに捕捉されるので, - サブプロセスを生成する他の関数(system() とか IO.popen()など)を - 使うと,予期しない例外が発生することがあります.これを防ぐため - には,下記のprotect_signal()を参照してください. - - この関数がブロックパラメータ付きで呼ばれた場合には,そのブロック - の中でのみ SIGCHLD が捕捉されます.したがって,ブロックパラメータ - として渡されたIOオブジェクトを,ブロックの外に持ち出して使うの - は勧められません. - - + 子プロセスが終了したり停止した場合には,例外が発生します.この関 + 数がブロックパラメータ付きで呼ばれた場合には,そのブロックの中で + のみ例外が発生します.子プロセスをモニターしているスレッドはブロッ + クを抜けるときに終了します. + protect_signal + reset_signal - この関数はイテレータです.ここで指定されたブロックの中では, - 子プロセスが終了しても例外を発生しません.この関数を使うことで, - PTYの子プロセスが動いている間でも,system()や IO.popen()などの - 関数を安全に使うことができます.例えば, + 廃止予定です. - PTY.spawn("command_foo") do |r,w| - ... - ... - PTY.protect_signal do - system "some other commands" - end - ... - end + PTY.open - このような記述により,"some other commands" が終了したときに - 例外が発生するのを防げます. + 仮想ttyを確保し,マスター側に対応するIOオブジェクトとスレーブ側に + 対応するFileオブジェクトの配列を返します.ブロック付きで呼び出さ + れた場合は,これらの要素はブロックパラメータとして渡され,ブロッ + クから返された結果を返します.また、このマスターIOとスレーブFile + は、ブロックを抜けるときにクローズ済みでなければクローズされます. - reset_signal + PTY.check(pid[, raise=false]) - PTY の子プロセスが動いていても,そのプロセスの終了時に例外が発生 - しないようにします. + pidで指定された子プロセスの状態をチェックし,実行中であればnilを + 返します.終了しているか停止している場合、第二引数が偽であれば、 + 対応するProcess::Statusオブジェクトを返します。真であれば + PTY::ChildExited例外が発生します. 4. 利用について |