On Mon, Apr 28, 2014 at 08:51:41PM +0200, Philipp Janda wrote:
Am 28.04.2014 19:10 schr??bte Roberto Ierusalimschy:
On 28/04/14 16:44, Roberto Ierusalimschy wrote:
(Sorry for the delay.) How can stdio.h not define 'off_t' but define
'fseeko', which uses 'off_t' in its prototype?
-- Roberto
Not in 10.4 it would seem [1]
int fseeko(FILE *, fpos_t, int);
[1] http://www.opensource.apple.com/source/Libc/Libc-391/include/stdio.h
So, 10.4 is not POSIX :-(
As long as sys/types.h contains something equivalent to
typedef fpos_t off_t;
it should be fine. E.g. my Linux stdio.h contains
extern int fseeko (FILE *__stream, __off_t __off, int __whence);
but the typedef is in the same file, so no problem here.
I think the fool-proof POSIX solution would be to include sys/types.h.
POSIX.1-2008 requires stdio.h to define off_t:
The <stdio.h> header shall define the following data types through
typedef:
...
off_t
As described in <sys/types.h>.
However, OS X is certified as POSIX.1-2001 compliant, where only fpos_t was
required to be defined by stdio.h.