Тут нада чота умное напейсать! Шоб сказал, как отрезал! Но чота ничо не приходит вголову, сцуко (( :D
У, камрады, чо я токо что прочитал, это песдетс.
Значицца, есть функции setjmp() & longjmp(). Первая позволяет установить точку возврата и возвращает 0 в этом случае, вторая используется для возвращения в указанную точку возврата и несёт с собой ненулевой аргумент. Возврат происходит в точке вызова первой функции и поскольку аргумент ненулевой, программа понимает, что это был возврат из longjmp(), по сути переход. Нафиг это надо - если у тебя вызвана куча вложенных функций и где-то там в глубине произошла ошибка, которая похерила всю работу, то чтоб не возвращацца последовательно, можно такую херню применить. При этом longjmp() делает "раскрутку стека" - сбрасывает все стековые фреймы всех вызванных функций. Поэтому вызывать longjmp() не из вложенных и вызванных функций - категорически запрещаецца - поскоку стека нет и раскручивать нечего, произойдёт сбой или ещё какая херня.
читать дальше
Вот скоко я всякой херни узнал и чо хочу сказать - бесполезно это читать, надо практиковать. Пейсать проги, например, тогда да, имеет смысл всю эту хрень читать и пытацца понять. А так - бесполезняк, всё забудецца довольно быстро.

@темы: Linux