- A hozzászóláshoz be kell jelentkezni
- 2151 megtekintés
Hozzászólások
Tanulságos lenne, ha egy BSD szakértő ideirná, hogy mennyiben lenne más a cikk, ha Win32->BSD-ről szólna.
thx
- A hozzászóláshoz be kell jelentkezni
Tudsz ilyet thuglife-on kivül? :-)
- A hozzászóláshoz be kell jelentkezni
nem tudom mennyire kompetens egy "BSD szakerto" win* temaban
- A hozzászóláshoz be kell jelentkezni
szép a cikk.
csak annyi a hibája, hogy pure WinAPI programozást feltételez, amit gyakorlatilag az elborzasztó nehézsége miatt senki sem csinál. Ehelyett inkább a winAPI-t MFC-be, Visual Basic-be, QT-be, C++Builder-be, Delphi-be vagy .NET-be csomagolva használják, hogy egyáltalán emészthető legyen.
na azokra ez a leírás szinte semmit sem ér ;)
- A hozzászóláshoz be kell jelentkezni
Ami "linuxos" programot a cikkben leírva láttam az nagyrészt posix-os, szóval szerintem egy az egyben jó kell, hogy legyen BSD-re is. Egyébként ha érdekel, nézd végig a cikkben kigyűjtött függvényhívások man oldalait; a legtöbb esetben a CONFORMING TO részben a POSIX mellett ott lesz a 4.4BSD vagy BSD 4.3 is. (Amúgy nem vagyok BSD szakértő)
- A hozzászóláshoz be kell jelentkezni
A cikket nem olvastam. Ez nagyban fugg a stanardoktol pl POSIX. A libraryk használatától. De ha veszunk egy olyan peldat, hogy quakeworld (quake1) ami mondjuk az SDL libraryt használja akkor azt te windowson, *bsd -n, linuxon, solarison meg egyeb mas OS -n is szinte 80% os sikerrel le fogod perditeni es valoszinuleg futni is fog. Ez nagyban fugg a használt funkcióktól is természetesen. Nézhetjük xchat et is amely windowsra is elérhető. CTCP Versionra reply elott a kliens kiolvassa a CPU infokat. Ezt linux eseten procfs bol, *BSD esetén sysctl segítségével.
Ezért láthatóak az ilyen kódrészletek:
#if defined(__linux__)
olvasd_ki_procfsbol();
#elif defined(__FreeBSD__) || defined(__OpenBSD__)
olvasd_ki_sysctlbol();
#endif
Ez a "portolható" kód. Ha egy programozó előre gondolkodik akkor késpőbb nem kell egy 50000+ soros kódbázist szinte teljesen átírni.
- A hozzászóláshoz be kell jelentkezni
Most ha megnezem mondjuk a strlen(3) manpaget, linuxon és OpenBSD -n ennyit láthatunk:
OpenBSD:
-------------
STANDARDS
The strlen() function conforms to ANSI X3.159-1989 (``ANSI C'').
Linux:
--------------
CONFORMING TO
SVID 3, POSIX, BSD 4.3, ISO 9899
- A hozzászóláshoz be kell jelentkezni
Persze ezek windows-ra is vonatkoznak. Tehát ha megézem WinSock API -ba az inet_ntoa(); functiont akkor ezt láthatjuk:
#include
char FAR * PASCAL FAR inet_ntoa ( struct in_addr in );
BSD -n pedig:
SYNOPSIS
#include
#include
#include
#include
char *
inet_ntoa(struct in_addr in);
Tehát a dolgunk csak annyi, hogy eldöntjük milyen OS en vagyunk és egy #ifdef segítségével a megfelő headereket includeoljuk.
- A hozzászóláshoz be kell jelentkezni