summaryrefslogtreecommitdiff
path: root/doc/posix-functions/ftell.texi
blob: 5a15dee8ea8eaef760e8426c118581f8ce8a860e (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
@node ftell
@section @code{ftell}
@findex ftell

POSIX specification:@* @url{https://pubs.opengroup.org/onlinepubs/9699919799/functions/ftell.html}

Gnulib module: ftell

Portability problems fixed by Gnulib:
@itemize
@item
This function mistakenly succeeds on pipes on some platforms:
mingw, MSVC 14.
@item
This function produces incorrect results after @code{putc} that followed a
@code{getc} call that reached EOF on some platforms:
Solaris 11 2010-11.
@item
This function, when invoked after @code{ungetc}, throws away the @code{ungetc}
buffer, changes the stream's file position, and returns the wrong position on
some platforms:
macOS 10.15 and newer.
@end itemize

Portability problems not fixed by Gnulib:
@itemize
@item
This function produces incorrect results immediately after @code{fseek} on some
platforms:
HP-UX 11.
@item
@code{fflush}, @code{ftell}, @code{ftello}, @code{fgetpos} behave incorrectly
on input streams that are opened in @code{O_TEXT} mode and whose contents
contains Unix line terminators (LF), on some platforms: mingw, MSVC 14.
@item
On platforms where @code{long} is a 32-bit type, @code{ftell} does not work
correctly with files 2 GiB and larger, even when the @code{AC_SYS_LARGEFILE}
macro is used.  The fix is to use @code{ftello} instead.
@end itemize