- Azonnali mobilos kérdések órája
- Samsung Galaxy S25 Edge - a tegnap határán
- Megjött a jubileumi Pixel széria
- Hivatalos a OnePlus 13 startdátuma
- Honor Magic V2 - origami
- Samsung Galaxy Watch8 - Classic - Ultra 2025
- Sony Xperia 1 V - kizárólag igényeseknek
- OnePlus Nord 5 - lehűti a kedélyeket
- Samsung Galaxy A56 - megbízható középszerűség
- Samsung Galaxy S24 Ultra - ha működik, ne változtass!
Ú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
- Renault, Dacia topik
- Azonnali mobilos kérdések órája
- Epson nyomtatók
- Samsung Galaxy S25 Edge - a tegnap határán
- A Google Gemini mentheti meg az Apple Sirit
- Milyen alaplapot vegyek?
- Gaming notebook topik
- A fociról könnyedén, egy baráti társaságban
- E-roller topik
- A kevés elérhető GPU miatt nem hoz saját GeForce RTX 5090-et a Noctua
- További aktív témák...
- HIBÁTLAN iPhone 13 mini 256GB Starlight -1 ÉV GARANCIA - Kártyafüggetlen, MS3038, 94% Akkumulátor
- ThinkPad T495 Ryzen 3 PRO 3300U 12GB 256GB 1 év garancia
- BESZÁMÍTÁS! ASROCK B550 R5 3600 16GB DDR4 250GB SSD 1TB HDD RX 5700 XT 8GB CM MasterBox MB500 700W
- Samsung Galaxy A55 5G 256GB, Kártyafüggetlen, 1 Év Garanciával
- Telefon felvásárlás!! iPhone 11/iPhone 11 Pro/iPhone 11 Pro Max
Állásajánlatok
Cég: FOTC
Város: Budapest