4
シグナルが配信されると、シグナルハンドラはプロセスのスタック上で実行されます。 sigaction()
にSA_ONSTACKが使用されている場合は、別のスタックが使用されます。sigactionでのSA_ONSTACKの使用は何ですか?
異なるスタックを使用することは何ですか?どのユースケースの例ですか?
シグナルが配信されると、シグナルハンドラはプロセスのスタック上で実行されます。 sigaction()
にSA_ONSTACKが使用されている場合は、別のスタックが使用されます。sigactionでのSA_ONSTACKの使用は何ですか?
異なるスタックを使用することは何ですか?どのユースケースの例ですか?
代替スタックを1回使用すると、SIGSEGV
を正しく処理することができます。
プロセスがスタック制限を超えたためにSIGSEGV
を受信したばかりの場合、プロセスのスタック上でシグナルハンドラを実行することはできません。代わりのスタックを持つことで、(慎重に)多かれ少なかれグレースフルシャットダウンを実行することができます。
+1これは、正確に 'sigaltstack'のTLPIの例です。 – cnicutar