lseek64 vraci jen 32bitu pozice

Pavel Kankovsky peak na argo.troja.mff.cuni.cz
Úterý Únor 3 10:32:29 CET 2004


On Tue, 3 Feb 2004, Karel Dudasek wrote:

> Pred tydnem jsem s hruzou zjistil, ze lseek64(fd, (off_t)0, SEEK_CUR)
> mi vrati jen orezanou cast dolnich 32 bitu pozice.

1. mate includovany header s patricnym prototypem, kde se rika, ze
   lseek64 vraci 64-bitovou hodnotu? (jinak se by default predpoklada,
   ze navratova hodnota je int)
2. strkate to nekam, kam se 64 bitu vejde?

> Nemuze me nekdo nasmerovat, jestli jde volat primo nejakou systemovou
> funkci, ktera mi vrati skutecnou pozici ?

Vzdycky to skonci na sys_llseek()...ale budete muset volat primo syscall.
Jde to, jednou jsem to zkousel, kdyz jsem take lseek64 podezrival z toho,
ze nefunguje spravne, ale pak jsem zjistit, ze chyba byla nekde uplne
jinde (disk byl mensi, nez jsem si puvodne myslel) + ze strace mozna
trochu blbe vypisuje 64-bitove hodnoty.


--Pavel Kankovsky aka Peak  [ Boycott Microsoft--http://www.vcnet.com/bms ]
"Resistance is futile. Open your source code and prepare for assimilation."



Další informace o konferenci Linux