Ubuntu Linuxシステムで終了ステータスコード4479(0x117f)が何を意味するのか誰かが知っていますか?プログラムがエンコードせずにこれを取得しています(それぞれ0と1のEXIT_SUCCESSとEXIT_FAILUREしかありません)。255を超えるコードのリストが見つからないようです。ありがとうございます。
2 に答える
この4479または0x117fは、C / C ++呼び出しから返されるもののように見えます(Unixの事前定義された変数system()
の値(0〜255のみ)とは対照的です)。$?
また、Linuxを使用していることを考えると、glibcを使用している可能性が非常に高くなります。
したがって、その場合、この値は0〜255のexit()
ステータスではなく、によって設定されたステータスのようにフォーマットされwaitpid()
ます(終了ステータスを含めることができますが、この場合はおそらく含まれていません)。
もしそうなら、ソースWIFSTOPPED(4479)
はそれがtrueを返し、それは17を返すだろうと私に言いますWSTOPSIG(4479)
。(詳細についてはwaitpid()
manページを参照してください。)したがって、4479が返されるプロセスは終了せず、まだそこにありますが、によって停止されました。シグナル17。
シグナル17はSIGCHLD(少なくとも、x86でLinuxを実行している場合)です。これは、「子[プロセス]が停止または終了した」ことを意味します。
特定のアプリケーションコンテキストについて詳しく知らなければ、なぜそのSIGCHLDが発生するのかわかりません。
これは、またはから取得したステータス値のようですが、終了ステータスとは異なります。マクロ、、、およびは、ステータス値でその意味を決定するために使用する必要があります。この場合、このstatusの値はtrueのように見えます。これは、子プロセスが停止したことを意味します。wait()
waitpid()
WIFEXITED()
WIFSIGNALED()
WIFSTOPPED()
WIFCONTINUED()
WIFSTOPPED()