Keresés

Új hozzászólás Aktív témák

  • disy68

    aktív tag

    válasz jattila48 #20014 üzenetére

    Exit code avagy exit status

    "Márpedig az int main(int, char **) fv. éppen olyan közönséges fv., mint bármelyik"
    Ez nem igaz, a main függvény végén lesz egy system exit call, vagy a return által visszaadott értékkel vagy default 0, amennyiben nem volt explicit exit hívás vagy bármi egyéb runtime error.

    A fentiek alapján látszik, hogy az exit code az nem adat átadásra szolgál, hanem a process befejézés állapotának a közlésére. Processek közötti kommunikáció vagy adatcsere az nem ilyen egyszerű. Erről itt találsz egy összefoglalót. A táblázatban az anonymous pipe, amit én is írtam a standard out, ami a te esetedben a bevált és használt megoldás. Bármi más az vagy lassabb lesz (pl. file-ok) vagy sokkal komplexebb (pl. socket vagy message queue-k). Persze ragaszkodhatsz az exit code megerőszakolásához is, ez a te dolgod.

    A standard out-ra kerülő adat a visszatérési érték a php shell_exec és exec függvényénél is (a megkötések benne vannak a dokumentációban).

    A windows vonatkozást én néztem be, sorry, figyelmetlenül olvastam a dokumentációt.

  • jattila48

    aktív tag

    válasz jattila48 #20014 üzenetére

    Közben beledebuggoltam a programba (Windows alatt, Linux-on még nem), és a rendszer (Windows RTL, Linuxon libc) a main meghívása után valóban meghívja az exit fv.-t, aminek a main-ből return-nel visszaadott értéket adja át. Az exit ezt az értéket lehet, hogy Linux-on 8 bitre csonkolja, Windows-on nem. Vagyis szerintem itt lesz a kutya elásva, az exit-nél. Akkor is meg lesz hívva (a libc által), ha a main-ből return-nel térek vissza. Minden esetre az továbbra is igaz, hogy ez nem a main fv. specialitása. A válaszokat köszönöm, probléma felderítve. Most már legalább ezt is tudom. Igaz rá ment egy napom, hogy kiderítsem, linuxon miért nem működött a PHP szkriptem.
    A Windows max. 499-es visszatérési értéke mellékszál, de azért még érdekel. Ha tudtok róla bővebbet, kérlek ne tartsátok magatokban.

Új hozzászólás Aktív témák