質問: fopen("/tmp/app", "r"); fclose(fp); fclose(fp); //←ここでメモリ二重開放のエラーが出る return 0; } ```
回答: プログラムがabort(異常終了)した場合には、_exitシステムコールが呼ばれないため、通常の終了コードはセットされません。 何となくでいうと、0x86は、SIGABRTのシグナル番号である0x06に、下から4ビット目が立った値ではないでしょうか。 ### 追記: そう思って調べてみると、これは終了コードを受け取るシェルの側の動作のようですね。ash・bash・zshあたりは128+シグナル番号、ksh93あたりは256+シグナル番号、という説明がありました。 * kill - Default exit code when process is terminated? - Unix & Linux Stack Exchange