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