FTELL(3C) Standard C Library Functions FTELL(3C)

ftell, ftello - return a file offset in a stream

#include <stdio.h>
long ftell(FILE *stream);

off_t ftello(FILE *stream);

The ftell() function obtains the current value of the file-position indicator for the stream pointed to by stream. The ftello() function is identical to ftell() except for the return type.

Normally the value returned is measured in bytes. However, when stream has been created with open_wmemstream(3C) then the offset of the stream is measured in wide characters. This behavior is consistent with how fseek(3C) and fseeko(3C) treat the offset into the stream.

Upon successful completion, the ftell() and ftello() functions return the current value of the file-position indicator for the stream measured in bytes from the beginning of the file, or wide characters for streams created by open_wmemstream(3C). Otherwise, they return −1 and sets errno to indicate the error.

The ftell() and ftello() functions will fail if:

EBADF

The file descriptor underlying stream is not an open file descriptor.

ESPIPE

The file descriptor underlying stream is associated with a pipe, a FIFO, or a socket.

The ftell() function will fail if:

EOVERFLOW

The current file offset cannot be represented correctly in an object of type long.

The ftello() function will fail if:

EOVERFLOW

The current file offset cannot be represented correctly in an object of type off_t.

The ftello() function has a transitional interface for 64-bit file offsets. See lf64(7).

See attributes(7) for descriptions of the following attributes:

ATTRIBUTE TYPE ATTRIBUTE VALUE
Interface Stability Standard
MT-Level MT-Safe

lseek(2), fopen(3C), fseek(3C), open_wmemstream(3C), attributes(7), lf64(7), standards(7)
March 25, 2020 OmniOS