gd_nframes(3) report the size of a dirfile

SYNOPSIS

#include <getdata.h>
off_t gd_nframes(DIRFILE *dirfile);

DESCRIPTION

The gd_nframes() function queries a dirfile(5) database specified by dirfile and returns the number of frames in the database. Since different fields may have differing number of frames, the Dirfile Standards (see dirfile(5)) dictate that the number of frames in the database is defined to be equal to the number of frames in the reference field defined by the /REFERENCE directive (see dirfile-format(5)) or, if no such reference field is defined, by the first raw field specified in the format specification.

If no vector fields are defined in the database, gd_nframes() returns zero and succeeds.

The dirfile argument must point to a valid DIRFILE object previously created by a call to gd_open(3).

RETURN VALUE

Upon successful completion, gd_nframes() returns the number of frames in the dirfile. On error, it returns zero and sets the dirfile error to a non-zero error value. Possible error values are:
GD_E_ALLOC
The library was unable to allocate memory.
GD_E_BAD_DIRFILE
The supplied dirfile was invalid.
GD_E_IO
An attempt to determine the (unencoded) size of the data file associated with the reference field failed.
GD_E_UNKNOWN_ENCODING
The size of the decoded data file associated with the reference field could not be not be determined because its encoding was not understood.
GD_E_UNSUPPORTED
The size of the decoded data file associated with the reference field could not be not be determined because its encoding was not supported.

The dirfile error may be retrieved by calling gd_error(3). A descriptive error string for the last error encountered can be obtained from a call to gd_error_string(3).