Hirdetés
- Alaposan felpumpálta AI gyorsítójának izmait a Google
- Kisebb "atomreaktort" avatott a Minisforum
- A Microsoft bedurvult, így a jövőben keményen odacsapnak a veszélyes drivereknek
- Scalperektől félti RAM moduljait a Framework
- Drasztikusan lassíthatja a játékokat egyes VGA-kon a Windows 11 új frissítése
Ú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
- Apple asztali gépek
- exHWSW - Értünk mindenhez IS
- Elemlámpa, zseblámpa
- 5.1, 7.1 és gamer fejhallgatók
- 14,2”-es táblagépet mutatott be a Huawei
- OLED TV topic
- Gyors és éles, 120 alatt: Acer Predator XB273K V5
- Amazfit Bip 6 - jót olcsón
- Fejhallgató erősítő és DAC topik
- Mennyibe fog kerülni a Steam Machine?
- További aktív témák...
- Lenovo V130-15IGM laptop (Pentium Silver N5000/8GB/256GB SSD
- LG 32GS95UX - 32" OLED / UHD 4K / 240Hz - 480Hz & 0.03ms / 1300 Nits / NVIDIA G-Sync / AMD FreeSync
- Apple iPhone 11 64GB, Kártyafüggetlen, 1 Év Garanciával
- Apple iPhone 14 pro 128GB,Újszerű,Dobozával, 12 hónap garanciával
- Honor 400 Lite / 8/256GB / Kártyafüggetlen / 12Hó Garancia
Állásajánlatok
Cég: ATW Internet Kft.
Város: Budapest
Cég: Laptopműhely Bt.
Város: Budapest


