On 29 Aug 98 at 14:15, > wrote:
> Kedves Coder Olvasok,
Szia!
> 'EXE file header' leirast keresek, mely a Windows-os EXE
> file-ok fejreszet leirna, hogy mi hol talalhato bennuk...
16 vagy 32 bites formatum kell? (NE vagy PE?) A ketto kozel sem
ugyanaz!
> De talan meg jobb lenne egy olyan program forras kod,
> mely kiirna az EXE file-ok fej adatait...
Nekem van ilyenem 32 biteshez. Linux-hoz csinaltam, Win32 DLL-eket
tud load-olni meg futtatni Linux alatt. Persze lefordithato Win-es
konzol applikaciokent is.
István
-- Istvan Marosi -- http://www.sch.bme.hu/~marosi --
-- Recosoft Ltd. -- mailto: --
|
On 29 Aug 98 at 6:26, > wrote:
> Bocsika, de ez igy csak reszben igaz, es egyaltalan nem korrekt.
Bocs, igazad van.
> A WinSock 1 resze az oprendszernek (NT4-nel mar a WinSock 2), es a
Igen, a win32-tol kezdve.
Azt, hogy nem (volt) resze az oprendszernek, kicsit mas szempontbol
nehezmenyeztem. A unix-oknak sem volt resze eleve a socket. Csak eppen
amikor kitalaltak, akkor azt ugy csinaltak, hogy ne noveljek
feleslegesen a rendszerhivasok szamat, szepen beleillesztettek az
egeszet a letezo egyseges keretbe, a file descriptor-ok koze. A
winsock meg csak ugy oda van drotozva a tobbi melle, aminek pl. az a
kovetkezmenye, hogy a select()-tel nem lehet keverve socket-re meg
file descriptorra varakozni.
A win32 ota ez tenyleg megvaltozott, egyseges rendszerrutinokkal
hasznalhato a socket is. Csak eppen ezt ugy csinaltak, hogy krealtak
egy csomo uj rendszerhivast.
> A masik, hogy win32 alatt a send es recv helyett inkabb WSASend()
> es WSARecv() hasznalata ajanlatos,
No tessek, megint ket ujabb rendszerhivas :) (A unix-ban olyan szep,
hogy nincs mindenre x fele kulon hivas :)
> ezeknel ugyanis lehetseges overlapped IO, ami lehetove teszi, hogy
> mas esemenyre (pld a rendszergazdi le akarja allitani a service-t)
> is reagalni tudjunk, ameddig az adatok megerkezesere, vagy
> elmenetelere varunk.
Overlapped IO a recv() meg send() hivasokkal is lehetseges,
windows-ban is: Atallitod a socket-et non-blocking-ra.
Unix-ban persze atallitani non-blocking-ra nem csak socket-et lehet,
hanem barmilyen file descriptor-t is. (Tudom, lehet win32-ben is...)
> Ennel a temanal maradva, (_NEM KOTOZKODOM, TENYLEG ERDEKEL_)
> hogyan lehet a fenti dolgot unix (Linux) alatt megoldani
[...]
> Win32-ben ez viszonylag 1szeru, WSARecv-vel olvasok overlapped
> IO-val, majd egy WaitForMultipleObjects-szel varok az IO eventjere
> es egy globalis "service stop" eventre bWaitAll = FALSE-szal
Unixban ehhez meg overlapped IO sem kell: a socket-et is, meg azt a
descriptor-t is, ahonnan az 'service stop'-ot varod, berakod egy
select() hivasban az olvasasra varakozok halmazaba, es az a
descriptor jon vissza (es akkor), ahonnan erkezne valami.
> Es ha mar itt tartunk. Van hasonlo a unixokban a Win32-es Eventhez
> ill. Mutexhez?
Persze (bar nem ismerem tulsagosan sem a win32-ot, sem a unix-ot). A
hagyomanyos unix Event megoldas azt hiszem, az, hogy megnyitsz
mondjuk minden esemenyhez pl. egy pipe-ot, es a select()-tel varod,
hogy jon-e valamelyikrol valami. Mutex-et is le lehet valamivel
szimulalni biztos...
A System V-ban meg kitalaltak az IPC hivasokat (Inter Process
Communication), amik aztan elterjedtek a tobbiben is (pl. a Linux-ban
is vannak), ezzel a korabbiaknal valoszinu egyszerubben lehet
haromfele dolgot csinalni: message-eket kuldeni, shared memoriat
kezelni, meg szemaforokat kezelni.
> Compi
>
> aki baromira nem ert a Linuxhox, de ez erosen zavarja.
:)) Olyan nagyon en sem ertek hozza :)
István
-- Istvan Marosi -- http://www.sch.bme.hu/~marosi --
-- Recosoft Ltd. -- mailto: --
|