2016-09-02 19 views
1

Ruby Kernel#exitは、ステータスコードの引数をとります。このコードは、exit(3) C関数呼び出しに対応しています.Cのライブラリは、あらかじめ定義された定数を提供します。定数を使用すると、リテラル整数を使用するよりも読みやすくなります。 MacOSのexit(3) manページは言う:Rubyシステムの終了ステータス定数

The C Standard (ISO/IEC 9899:1999 (``ISO C99'')) defines the values 0, 
EXIT_SUCCESS, and EXIT_FAILURE as possible values of status. Cooperating 
processes may use other values; in a program which might be called by a 
mail transfer agent, the values described in sysexits(3) may be used to 
provide more information to the parent process. 

Rubyは、上記引用しEXIT_SUCCESSとしてステータスコードに対応する定数を提供していますか?好ましくは言語そのもの、標準ライブラリ、またはそれ以外はRuby Gemとして。

+2

'exit(真)'(または単に 'exit')は' EXIT_SUCCESS'に対応し、 'exit(偽)'は 'EXIT_FAILURE'に対応します。 – Stefan

+0

Stefan:これはすでに長いことです。 upvotedされ、受け入れられた答えの候補者になるようにこれを回答として投稿することを検討してください。 –

答えて

1

Kernel#exitのドキュメントに記載されているように:状態

trueFALSEは、それぞれの成功と失敗を意味します。

具体:

  • exit(true)(または単にexitEXIT_SUCCESS
  • exit(false)
  • に対応EXIT_FAILURE

根底C codeに対応する:

switch (status) { 
    case Qtrue: 
    istatus = EXIT_SUCCESS; 
    break; 
    case Qfalse: 
    istatus = EXIT_FAILURE; 
    break; 
    // ... 
} 

他の値はシステムに依存するため、C標準では定数がありません。

関連する問題