Стандарт C99 не определяет стек; в нем рассматривается только автоматическое или выделенное хранилище в абстрактном виде, тогда как непрерывный стек с обнаружением переполнения является лишь одним механизмом для реализации автоматического хранения.
Раздел 7.14 стандарта определяет SIGSEGV как сигнал, который поступает на «неверный доступ к хранилищу» . Реализации C не обязаны генерировать какие-либо сигналы, но реализации, использующие непрерывный стек фиксированного размера *, обычно сигнализируют SIGSEGV, если обнаружено переполнение стека.
Вы можете зарегистрировать функцию-обработчик сигнала для SIGSEGV, но она не может вернуть - "[i] f и когда функция возвращает, если значение sig равно SIGFPE, SIGILL, SIGSEGV или любой другой реализации -определенное значение, соответствующее вычислительному исключению, поведение [u] r не определено ".
(* не то чтобы я сознательно работал с реализациями C, которые этого не делают, но я ничего не знаю в стандарте C, запрещающем использование общих методов, используемых для реализации растущих автоматических доменов хранения в других средах)