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