setjmp и longjmp - понимание с примерами

Я знаю определение setjmp и longjmp. setjmp сохраняет среду в контексте стека, а другой восстанавливает.

Но я думаю, что с моей стороны что-то непонятно. Может ли кто-нибудь объяснить мне с помощью хороших примеров, как я могу убедиться, как он будет сохранен и как он будет восстановлен?

Я видел, что в jmp_buf указано много регистров процессора. Но как мне убедиться, что он восстановлен?

Пожалуйста, помогите мне объяснить с помощью изящных примеров. Я погуглил и ответил на другие вопросы о переполнении стека, но ни один из них не дал четких примеров.

Заранее огромное спасибо.

P.S: Это должно быть только из контекста Linux / Unix.

7
задан kingsmasher1 31 July 2011 в 16:58
поделиться