Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

setjmp i longjmp problem

[es] :: C/C++ programiranje :: setjmp i longjmp problem

[ Pregleda: 2436 | Odgovora: 1 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

aleksazr
zrenjanin

Član broj: 196784
Poruke: 245
*.opera-mini.net.



+11 Profil

icon setjmp i longjmp problem05.09.2010. u 18:36 - pre 165 meseci
Code:

static jmp_buf environment;

void testproc (void)
{
        longjmp(environment, 1);
}

long do_setjmp (void)
{
        return setjmp(environment);
}

long testing (void)
{
    long status;

        status = setjmp(environment);
//      status = do_setjmp();

        if (status == 0) {
            testproc();
            return -1;
        }

        return status;
}


Program pocinje u rutini testing, zove setjmp pa rutinu koja obavezno zove longjmp.

E sad, ako zovem setjmp iz rutine testing, stvar radi. Prvi put, status je nula,
pa se pozove testproc, drugi put je 1, pa vratim status(1).

Ali, ako setjmp uradim sa do_setjmp, kad pozovem testproc i on pozove longjmp,
longjmp se vrati gde treba (u rutinu do_setjmp) ali se onda ta rutina vrati na return -1;
tj iza poziva testproc, a ne na "if (status == 0)"..... zasto?
CYRfree 2.0.5 - ako bi ćirilicu radije čitali kao latinicu.
Serbian Latin & Cyrillic keyboard layout 08.nov.2022 - za QWERTY tastature sa našeg tržišta.
http://users.beotel.net/~gwh/

 
Odgovor na temu

aleksazr
zrenjanin

Član broj: 196784
Poruke: 245
*.opera-mini.net.



+11 Profil

icon Re: setjmp i longjmp problem05.09.2010. u 21:42 - pre 165 meseci
odgovor ovde:

http://groups.google.com/group...hread/thread/0a6b5ccb6aa89477#
CYRfree 2.0.5 - ako bi ćirilicu radije čitali kao latinicu.
Serbian Latin & Cyrillic keyboard layout 08.nov.2022 - za QWERTY tastature sa našeg tržišta.
http://users.beotel.net/~gwh/

 
Odgovor na temu

[es] :: C/C++ programiranje :: setjmp i longjmp problem

[ Pregleda: 2436 | Odgovora: 1 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.