Debian production
Martin `MJ' Mares
mj na ucw.cz
Čtvrtek Červenec 15 21:55:42 CEST 2004
Hello, world!\n
> Leccos jsem na toto tema procetl, ale nenasel jsem jasnou odpoved: Musim
> se u programu v C zajimat o _LARGEFILE64_SOURCE a jemu podobne pri
> kompilaci v pripade, ze ke vsem souboru pristupu pouze sekvencne? Tedy
> pouzivam toliko open, read, write, close, fopen, fread, fwrite,
> fclose..., nezajimam se tudiz o pozici v souboru a nechci ji nastavovat?
I tehdy to je zapotrebi.
Jelikoz kernel dopredu nevi, jake operace budete se souborem provadet
a jestli po tom sekvencnim cteni neprijde treba seek(), kterym byste
chtel zjistit aktualni pozici v souboru, nezbyva mu, nez soubor uz
na samem zacatku odmitnout otevrit.
Letmy pohled pod poklicku: _LARGEFILE64_SOURCE apod. ovlivnuje mimo
toho, zda se pouzije 64-bitova verze nekterych syscallu, hlavne predani
flagu O_LARGEFILE pri open().
Ciste teoreticky by tedy stacilo, pokud Vam staci sekvencni pristup,
O_LARGEFILE pridat rucne a o nic vic se nestarat (tak se to konec koncu
v pravekych casech, kdy kernel large files umel a libc jeste ne, delalo)
-- na druhou stranu nadefinovat ten jeden symbol je asi stejne pracne
a daleko portabilnejsi.
Preji pekny den
--
Martin `MJ' Mares <mj na ucw.cz> http://atrey.karlin.mff.cuni.cz/~mj/
Faculty of Math and Physics, Charles University, Prague, Czech Rep., Earth
Never make any mistaeks.
Další informace o konferenci Linux