Re: Adding large file support
Re: Adding large file support
- Subject: Re: Adding large file support
- From: Rustam Muginov <email@hidden>
- Date: Sat, 23 Oct 2010 15:30:22 +0400
AFAIC where are no "fseeko64/fopen64" in C standard.
For 64-bit offset, use
int fseeko(FILE *stream, off_t offset, int whence);
for definition of off_t, use
#include <sys/types.h>
You can read more in Mac OS X man pages.
On Oct 23, 2010, at 2:28 PM, Alex Reynolds wrote:
> I have a C application I am trying to compile under Mac OS X 10.6.4, which includes large file support. The application builds correctly under Linux.
>
> Here is the Darwin kernel I am using:
>
> -------------------------
> $ uname -v
> Darwin Kernel Version 10.4.0: Fri Apr 23 18:28:53 PDT 2010; root:xnu-1504.7.4~1/RELEASE_I386
> -------------------------
>
> My gcc installation is as follows:
>
> -------------------------
> $ gcc --version
> i686-apple-darwin10-gcc-4.2.1 (GCC) 4.2.1 (Apple Inc. build 5664)
> -------------------------
>
> My Makefile is as follows:
>
> -------------------------
> CC=gcc
> CFLAGS=-D_FILE_OFFSET_BITS=64 -D_LARGEFILE64_SOURCE -O3 -Wformat -Wall -pedantic -std=gnu99
>
> all: myApp
> rm -rf *~
>
> myApp: myApp.o
> ${CC} ${CFLAGS} myApp.o -lbz2 -o myApp
> rm -rf *~
>
> clean:
> rm -rf *.o myApp
> -------------------------
>
> The issue is that my application makes calls to "fseeko64" and "fopen64", and it uses the "off64_t" type for offsets. When I attempt to build, I get the following related warnings and errors:
>
> -------------------------
> $ make myApp
> gcc -D_FILE_OFFSET_BITS=64 -D_LARGEFILE64_SOURCE -O3 -Wformat -Wall -pedantic -std=gnu99 -c -o myApp.o myApp.c
> myApp.c: In function ‘extractData’:
> myApp.c:119: warning: implicit declaration of function ‘fseeko64’
> myApp.c:119: error: ‘off64_t’ undeclared (first use in this function)
> myApp.c:119: error: (Each undeclared identifier is reported only once
> myApp.c:119: error: for each function it appears in.)
> myApp.c: In function ‘extractMetadata’:
> myApp.c:305: warning: implicit declaration of function ‘fopen64’
> myApp.c:305: warning: assignment makes pointer from integer without a cast
> -------------------------
>
> My code builds without errors under Linux. What changes can I make to the source code to add large file support when building under Darwin?
>
> Thanks for your advice.
>
> Regards,
> Alex _______________________________________________
> Do not post admin requests to the list. They will be ignored.
> Darwin-dev mailing list (email@hidden)
> Help/Unsubscribe/Update your Subscription:
>
> This email sent to email@hidden
_______________________________________________
Do not post admin requests to the list. They will be ignored.
Darwin-dev mailing list (email@hidden)
Help/Unsubscribe/Update your Subscription:
This email sent to email@hidden