Duża obsługa plików nie działa w programowaniu C

Próbuję skompilować obiekt udostępniony (który jest ostatecznie używany w Pythonie z ctypami). Wiersz polecenia użyty do zbudowania obiektu to:

gcc -Wall -O3 -shared -Wl,-soname,borg_stream -lm -m128bit-long-double -fPIC \
    -D_FILE_OFFSET_BITS=64 -o borg_stream.so data_stream.c data_types.c \
    file_operations.c float_half.c channels.c statistics.c index_stream.c helpers.c

Biblioteka buduje się poprawnie w 32-bitowym systemie operacyjnym i robi to, czego potrzebuje do małych plików. Jednak nie udaje się testować jednostki dla plików większych niż 4 GB. Ponadto ustawia errno na EOVERFLOW podczas wykonywania fseek / ftell. Jednakże, jeśli I printf sizeof (off_t), zwraca 8. Jeśli usunę-D_FILE_OFFSET_BITS=64, a następnie drukuje 4. Wygląda na to-D_FILE_OFFSET_BITS właściwie wykonuje swoją pracę.

Dlaczego obsługa dużych plików nadal nie działa? Co ja robię źle?

questionAnswers(3)

yourAnswerToTheQuestion