gd_tell—report the position of a Dirfile field I/O pointer


#include <getdata.h>

off_t gd_tell(DIRFILE *dirfile, const char *field_code);


The gd_tell() function reports the current position of the I/O pointer of the field field_code in the dirfile(5) database specified by dirfile.

Only RAW fields (and the implicit INDEX field) have field pointers associated with them. Calling gd_tell() on a derived field will report the position of the I/O pointer of the derived field only if all of it's inputs are positioned the same. Otherwise, an error results.


Upon successful completion, gd_tell() returns a non-negative integer indicating the I/O position of the specified field in samples. On error, it returns a negative-valued error code. Possible error codes are:

The library was unable to allocate memory.
The field specified by field_code, or one of the fields it uses for input, was not found in the database.
The supplied dirfile was invalid.
The specified field or one of its inputs wasn't of vector type.
The I/O position of a derived field wasn't well defined because its input fields simultaneously read from different places in the same RAW field.
An internal error occurred in the library while trying to perform the task. This indicates a bug in the library. Please report the incident to the maintainer.
An error occurred while trying to open or read from a file on disk containing a raw field.
Too many levels of recursion were encountered while trying to resolve field_code. This usually indicates a circular dependency in field specification in the dirfile.
The encoding scheme of a RAW field could not be determined. This may also indicate that the binary file associated with the RAW field could not be found.
Reading from dirfiles with the encoding scheme of the specified dirfile is not supported by the library. See dirfile-encoding(5) for details on dirfile encoding schemes.

The error code is also stored in the DIRFILE object and may be retrieved after this function returns by calling gd_error(3). A descriptive error string for the error may be obtained by calling gd_error_string(3).


The gd_tell() function appeared in GetData-0.8.0.

In GetData-0.10.0, the error return from this function changed from −1 to a negative-valued error code.


gd_getdata(3), gd_open(3), gd_putdata(3), gd_seek(3).

Last updated on 25 December 2016 for GetData Version 0.10.0.