- Szenzorosan védett 12V-2x6 kábel jött az ASRock berkeiből
- OLED TV topic
- Milyen asztali (teljes vagy fél-) gépet vegyek?
- Epson nyomtatók
- Amlogic S905, S912 processzoros készülékek
- Kormányok / autós szimulátorok topikja
- Milyen billentyűzetet vegyek?
- Azonnali alaplapos kérdések órája
- ThinkPad (NEM IdeaPad)
- Házimozi belépő szinten
Új hozzászólás Aktív témák
-
jattila48
aktív tag
válasz
disy68 #20016 üzenetére
Továbbra is fenntartom, hogy a main fv. semmiben sem speciális, nem hívja meg (legalábbis magától) az exit-et, és nem csonkolja az int visszatérési értékét. Egyébként a linkereknek megadhatod, hogy mi legyen a belépési pont, a main csupán a default. Ahogy az előző hozzászólásomban írtam, az exit végülis valóban meg lesz hívva, de nem a main, hanem a main fv.-t hívó entitás (RTL, libc,...) fogja azt meghívni. Leegyszerűsítve nagyjából így:
exit(main(...));
Amikor a rendszer egy processzt kerál (pl. a shell), akkor CreateProcess rendszerhívással hozza létre (Windowsban) az exe fájlból. Először az exe-hez linkelt Startup (RTL, libc) fv. indul el, amely különböző inicializálások után meghívja a main fv.-t, majd annak visszatérési értékével (ha a main nem hívott explicite exit-et), az exit rendszerhívást. A processz indító entitás, pedig WaitForSingleObject-tel várakozik a processz befejeződésére, ami az exit végrehajtásával következik be. Az exit által kreált exit kódot a GetExitCodeProcess hívásával szerzi meg. Windows-ban semmi különös nem történik, visszakapom a 4 bájtos visszatérő értéket. Linux-on azonban, vagy az exit, vagy a wait* fv. (valószínűleg az utóbbi) 8 bitre csonkolja azt. Hogy ez a viselkedés POSIX szabvány-e vagy nem, azt nem tudom (újabban valószínűleg nem az), de mindenesetre semmiképpen nem a main fv. specialitása.
Az IPC módokat ismerem (kb. 30 éve programozok), szerintem az most itt nem releváns.
"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 "
Ez szerintem nem így van, az exec visszatérési értéke (exec 3. argumentuma) a hívott exe program visszatérési értéke (amit végül is az exit->wait* állít elő), az stdout-ra írt értékeket pedig az exec 2. argumentumában kapom vissza tömbben.
Új hozzászólás Aktív témák
- One otthoni szolgáltatások (TV, internet, telefon)
- Allegro vélemények - tapasztalatok
- Szenzorosan védett 12V-2x6 kábel jött az ASRock berkeiből
- Xbox Series X|S
- OLED TV topic
- Horgász topik
- Azonnali fáradt gőzös kérdések órája
- Gyúrósok ide!
- Milyen asztali (teljes vagy fél-) gépet vegyek?
- Témázgatunk, témázgatunk!? ... avagy mutasd az Android homescreened!
- További aktív témák...
- DELL PowerEdge R640 rack szerver - 2xGold 6138 (20c/40t, 2.0/3.7GHz), 64GB RAM,4x1G, H730 1GB, áfás
- Tablet felvásárlás!! Samsung Galaxy Tab A8, Samsung Galaxy Tab A9, Samsung Galaxy Tab S6 Lite
- Telefon felvásárlás!! iPhone 13 Mini/iPhone 13/iPhone 13 Pro/iPhone 13 Pro Max/
- Samsung Galaxy A34 5G 128GB Kártyafüggetlen 1 év Garanciával
- Bezámítás! HP Victus 16-D0655NG Gamer notebook - i5 10400H 16GB DDR4 512GB+1TB SSD RTX 3060 6GB W11
Állásajánlatok
Cég: FOTC
Város: Budapest