Проблемът е - трябва да внедря собствения си изход (статус) с setjmp и longjmp. Може би някой може да даде някои насоки?
Моят изход (състояние) с setjmp un longjmp
comment
Какво опитахте?
- person Some programmer dude   schedule 03.11.2012
comment
@JoachimPileborg Не съм опитвал нищо, тъй като единственото разрешено изпълнение е с setjmp/longjmp и наистина не мога да си представя как да създам решение от тези функции. Е, това, което направих, е, че потърсих реализация на изход в изходния код на ядрото, но имаше много неща, които вероятно правят същото, но с различни методи. (По-точно гледах _exit())
- person Jānis Gruzis   schedule 03.11.2012
comment
Може да искате да прочетете това: stackoverflow.com/q/1733649/694576
- person alk   schedule 03.11.2012
Отговори (1)
Единственото решение, за което се сещам в момента, е да извикам setjmp
рано в main
и след това да създам MyExit
функция, която прави longjmp
към setjmp
в main
и прави return
с някаква стойност (осигурена от longjmp
извикването).
person
Some programmer dude
schedule
03.11.2012
Това изглежда като валидно решение, не забелязах, че мога да поставя макроси в основната функция. Вероятно това е мястото, където мога да поставя setjmp и да контролирам връщането в случай на скачане назад. Благодаря ти.
- person Jānis Gruzis; 03.11.2012
За какви макроси говориш?
- person Barmar; 03.11.2012
Знам какво са макроси, просто не виждам какво общо има с този въпрос или отговор.
setjmp()
е функция (или може да се третира така, сякаш е).
- person Barmar; 03.11.2012
@Barmar Ако поставите макроси в началото на main (което съдържа setjmp и други конструкции), можете да се върнете в началото с myExit и да върнете ненулев код, върнат от setjmp. Работата е там, че в началото мислех, че трябва да направя това без макроси.
- person Jānis Gruzis; 03.11.2012