FTELL(3)

NAME
ftell, ftello, _ftell_r, _ftello_r - return position in a stream or file

SYNOPSIS

#include <stdio.h>

long ftell(FILE *fp);

off_t ftello(FILE *fp);

long _ftell_r(struct _reent *ptr, FILE *fp);

off_t _ftello_r(struct _reent *ptr, FILE *fp);

DESCRIPTION

Objects of type FILE can have a ``position'' that records how much of the file your program has already read. Many of the stdio functions depend on this position, and many change it as a side effect.

The result of ftell/ftello is the current position for a file identified by fp. If you record this result, you can later use it with fseek/fseeko to return the file to this position. The difference between ftell and ftello is that ftell returns long and ftello returns off_t.

In the current implementation, ftell/ftello simply uses a character count to represent the file position; this is the same number that would be recorded by fgetpos.

RETURNS

ftell/ftello return the file position, if possible. If they cannot do this, they return -1L. Failure occurs on streams that do not support positioning; the global errno indicates this condition with the value ESPIPE.

PORTABILITY

ftell is required by the ANSI C standard, but the meaning of its result (when successful) is not specified beyond requiring that it be acceptable as an argument to fseek. In particular, other conforming C implementations may return a different result from ftell than what fgetpos records.

ftello is defined by the Single Unix specification.

No supporting OS subroutines are required.

AUTHORS

Steve Chamberlain
    Author.

Roland Pesch
    Author.

Red Hat Support

Jeff Johnston
    Author.

COPYRIGHT

This file documents the ANSI C library.

Copyright (C) 1992, 1993, 1994-2014 Red Hat, Inc.

libc includes software developed by the University of California, Berkeley and its contributors.

libc includes software developed by Martin Jackson, Graham Haley and Steve Chamberlain of Tadpole Technology and released to Cygnus.

libc uses floating-point conversion software developed at AT&T, which includes this copyright information:

The author of this software is David M. Gay.

Copyright (c) 1991 by AT&T.

Permission to use, copy, modify, and distribute this software for any purpose without fee is hereby granted, provided that this entire notice is included in all copies of any software which is or includes a copy or modification of this software and in all copies of the supporting documentation for such software.

THIS SOFTWARE IS BEING PROVIDED "AS IS", WITHOUT ANY EXPRESS OR IMPLIED WARRANTY. IN PARTICULAR, NEITHER THE AUTHOR NOR AT&T MAKES ANY REPRESENTATION OR WARRANTY OF ANY KIND CONCERNING THE MERCHANTABILITY OF THIS SOFTWARE OR ITS FITNESS FOR ANY PARTICULAR PURPOSE.

Permission is granted to make and distribute verbatim copies of this manual provided the copyright notice and this permission notice are preserved on all copies.

Permission is granted to copy and distribute modified versions of this manual under the conditions for verbatim copying, subject to the terms of the GNU General Public License, which includes the provision that the entire resulting derived work is distributed under the terms of a permission notice identical to this one.

Permission is granted to copy and distribute translations of this manual into another language, under the above conditions for modified versions.