gd_entry_list, gd_field_list, gd_field_list_by_type gd_mfield_list, gd_mfield_list_by_type, gd_mvector_list, gd_vector_list—list field entries in a Dirfile
#include <getdata.h>
const char **gd_entry_list(DIRFILE *dirfile, const char *parent, int type, unsigned int flags);
const char **gd_field_list(DIRFILE *dirfile);
const char **gd_field_list_by_type(DIRFILE *dirfile, gd_entype_t type);
const char **gd_mfield_list(DIRFILE *dirfile, const char *parent);
const char **gd_mfield_list_by_type(DIRFILE *dirfile, const char *parent, gd_entype_t type);
const char **gd_mvector_list(DIRFILE *dirfile, const char *parent);
const char **gd_vector_list(DIRFILE *dirfile);
The gd_entry_list() function queries a dirfile(5) database specified by dirfile and finds all the fields satisfying the provided criteria. If parent is non-NULL, metafields under the field specified by parent are considered; otherwise, top-level fields are considered, and metafields ignored.
The type argument should be one of the following symbols indicating an explicit entry type to list:
GD_BIT_ENTRY, GD_CARRAY_ENTRY, GD_CONST_ENTRY, GD_DIVIDE_ENTRY, GD_INDEX_ENTRY, GD_INDIR_ENTRY, GD_LINCOM_ENTRY, GD_LINTERP_ENTRY, GD_MPLEX_ENTRY, GD_MULTIPLY_ENTRY, GD_PHASE_ENTRY, GD_POLYNOM_ENTRY, GD_RAW_ENTRY, GD_RECIP_ENTRY, GD_SARRAY_ENTRY, GD_SBIT_ENTRY, GD_SINDIR_ENTRY, GD_STRING_ENTRY, GD_WINDOW_ENTRY.
(GD_INDEX_ENTRY is a special field type for the implicit INDEX field) or else one of the following special symbols:
The flags argument should be zero or more of the following flags, bitwise or'd together:
The array returned will be de-allocated by a call to gd_close(3) and should not be de-allocated by the caller. The list returned should not be assumed to be in any particular order. The array is terminated by a NULL pointer. The number of elements in the array, excluding the terminating NULL, can be obtained from an equivalent call to gd_nentries(3).
The caller may not modify any strings in the array, or the array itself. Doing so may cause database corruption. The pointer returned is guaranteed to be valid at least until gd_entry_list() is called again on the same DIRFILE object, or until the array is de-allocated by a call to gd_close(3). (Although the data may have become obsolete, if metadata have been modified in the interrim.)
This function has a subset of the functionality of the gd_match_entries(3) function (q.v.).
The call
is equivalent to
The call
is equivalent to
The call
is equivalent to
The call
is equivalent to
The call
is equivalent to
The call
is equivalent to
Upon successful completion, these functions returns a pointer to an array of strings containing the names of all the entries in the database satisfying the supplied criteria. The array is terminated with a NULL pointer. If there are no matching entries, an array containing only the terminating NULL pointer is returned.
On error, these functions return NULL and store a negative-valued error code in the DIRFILE object which may be retrieved by a subsequent call to gd_error(3). Possible error codes are:
A descriptive error string for the error may be obtained by calling gd_error_string(3).
The get_field_list() function appeared in GetData-0.3.0.
The get_field_list_by_type(), get_mfield_list(), get_mfield_list_by_type(), get_mvector_list(), and get_vector_list() functions appeared in GetData-0.4.0.
In GetData-0.7.0, these functions were renamed to gd_field_list(), gd_field_list_by_type(), gd_mfield_list(), gd_mfield_list_by_type(), gd_mvector_list(), and gd_vector_list().
The gd_entry_list() function appeared in GetData-0.8.0.
gd_error(3), gd_error_string(3), gd_hidden(3), gd_match_entries(3), gd_nentries(3), gd_open(3), dirfile(5)