0

Ubuntu Linuxシステムで終了ステータスコード4479(0x117f)が何を意味するのか誰かが知っていますか?プログラムがエンコードせずにこれを取得しています(それぞれ0と1のEXIT_SUCCESSとEXIT_FAILUREしかありません)。255を超えるコードのリストが見つからないようです。ありがとうございます。

4

2 に答える 2

6

この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が発生するのかわかりません。

于 2011-03-14T06:07:51.157 に答える
2

これは、またはから取得したステータス値のようですが、終了ステータスとは異なります。マクロ、、、およびは、ステータス値でその意味を決定するために使用する必要があります。この場合、このstatusの値はtrueのように見えます。これは、子プロセスが停止したことを意味します。wait()waitpid()WIFEXITED()WIFSIGNALED()WIFSTOPPED()WIFCONTINUED()WIFSTOPPED()

于 2011-03-14T06:05:36.503 に答える