Обработка исключений ЦП в C ++

Есть ли кроссплатформенный способ обработки исключений ЦП, таких как ошибки сегментации или деление на ноль? Допустим, мне нужно вызвать некоторые потенциально небезопасные функции (например, из файла подключаемого модуля), которые могут вызвать segfault или некоторые другие проблемы, которые я не могу протестировать, прежде чем я их выполню. Я знаю, что в стандартной библиотеке C есть функции обработки сигналов, но я не знаю, как их использовать для решения проблемы, чтобы избежать завершения программы (я думаю, Под Windows я мог бы использовать обработчики исключений SEH, но я не могу этого сделать под Linux или любой другой ОС. Как насчет использования моего собственного обработчика исключений для решения этих проблем, насколько это отличается между Windows / Linux? Возможно ли это вообще (через ассемблер - скажем, только на платформе x86)?

Я спрашиваю в основном из любопытства, я не пытаюсь решить существующую проблему (пока). Спасибо

7
задан Jan Holecek 25 January 2011 в 15:16
поделиться