Webエンジニア向けプログラミング解説動画をYouTubeで配信中!
▶ チャンネル登録はこちら

【Ruby3.x】Process::Status::exitstatus()メソッドの使い方

exitstatusメソッドの使い方について、初心者にもわかりやすく解説します。

作成日: 更新日:

基本的な使い方

exitstatusメソッドは、子プロセスの終了時にその終了ステータスコードを取得するメソッドです。このメソッドは、Process::Status クラスのインスタンスに対して呼び出され、プロセスが正常に終了した場合に、その終了コードを整数値で返します。一般的に、終了コードが 0 であればプロセスは成功裏に終了したことを示し、0 以外の値は、何らかのエラーや特定の状態を示します。

例えば、Process.waitProcess.waitpid といったメソッドを使って子プロセスの終了を待機し、その結果として得られる Process::Status オブジェクトから、子プロセスの実行結果を詳細に確認したいときにこのメソッドを利用します。これにより、実行した外部コマンドやスクリプトが意図通りに完了したか、あるいはどのような問題が発生したかをプログラムで判断できるようになります。

重要な点として、もし子プロセスがシグナルによって終了した場合や、その他の異常な方法で終了した場合には、exitstatus メソッドは nil を返します。そのため、このメソッドの返り値を利用する際には、まず nil でないことを確認するか、あるいは Process::Status オブジェクトが提供する exited? メソッドや success? メソッドなどで、プロセスが正常に終了したかどうかを事前に確認することが推奨されます。これにより、プログラムの堅牢性を高め、予期せぬ挙動を防ぐことができます。

構文(syntax)

1system("true")
2puts $?.exitstatus

引数(parameters)

引数なし

引数はありません

戻り値(return)

Integer または nil

実行された外部プロセスの終了ステータスを整数で返します。正常終了した場合は0、それ以外の場合は終了コードが返されます。プロセスが正常に終了しなかった場合や、終了コードが取得できなかった場合はnilを返します。

関連コンテンツ