【Ruby3.x】Process::Status::success?()メソッドの使い方
success?メソッドの使い方について、初心者にもわかりやすく解説します。
作成日: 更新日:
基本的な使い方
success?メソッドは、外部プロセスが正常に終了したかどうかを判定するメソッドです。このメソッドは、Process::Statusクラスのインスタンスに対して呼び出されます。Process::Statusクラスは、Rubyプログラムからsystemメソッドやバッククォート演算子 (``) などを用いて外部コマンドや子プロセスを実行した際に、そのプロセスの終了状態をカプセル化したオブジェクトです。
success?メソッドは、呼び出し元のプロセスが正常に終了した場合に真(true)を返します。具体的には、プロセスの終了ステータスコードがゼロ(0)であるか、あるいはシグナルによって終了した場合であっても、そのシグナルがオペレーティングシステムによって正常終了と見なされる場合に真を返します。通常、UNIX系のシステムでは、終了コード0はコマンドの成功を意味する慣習があります。
例えば、systemメソッドで外部コマンドを実行した後、その戻り値がnilではない場合に$?という特殊変数からProcess::Statusオブジェクトを取得し、$?.success?のように使用することで、実行されたコマンドが期待通りに成功したかどうかを簡潔に確認できます。これにより、外部コマンドの実行結果に基づいた適切なエラーハンドリングや処理の分岐を容易に実装できます。
構文(syntax)
1pid = Process.spawn("true") 2_pid, status = Process.waitpid2(pid) 3status.success?
引数(parameters)
引数なし
引数はありません
戻り値(return)
Boolean
指定されたコマンドやプロセスの実行が成功したかどうかを真偽値(trueまたはfalse)で返します。