Török Edvin wrote:
On 7/29/06, Uplink <[EMAIL PROTECTED]> wrote:
Si eu cum era sa ma ard cu prototipul de la lseek? :D Pentru ca nu am
inclus unistd.h, prototipul implicit generat de gcc imi ducea in padure
apelul de functie cand foloseam SEEK_END (culmea, pt. SEEK_SET nu facea
probleme).
Prototipurile lipsa pot crea multe probleme, mai ales daca sunt
implicate pointeri pe 64 de biti, ca prototipul implicit zice pt.
tipul returnat int, care e 32 de biti. Iar gcc face un cltq, adica
sign-extend bucata de 32 biti, si ajungi cu upper-32 bits suprascrisi.
Compileaza cu -Wall -W, iti zice ca ai uitat de prototip.
Did that. Asa am aflat ca prototipurile erau mismatched (traducerea in romaneste imi scapa). Nu stiu prin ce minune (sa tot scriu cod in loc sa dorm) am uitat sa pun -W -Wall in CFLAGS in Makefile. "#define _FILE_OFFSET_BITS 64" (fuse.h da eroare daca nu definesc asta asa) schimba prototipul lui lseek, pt. ca off_t devine pe 64 de biti. lseek64 mergea si fara declaratie desigur.


_______________________________________________
RLUG mailing list
[email protected]
http://lists.lug.ro/mailman/listinfo/rlug

Raspunde prin e-mail lui