gd_vector_list(3) retrieve a list of vector fields in a dirfile


#include <getdata.h>
const char **gd_vector_list(DIRFILE *dirfile);


The gd_vector_list() function queries a dirfile(5) database specified by dirfile and returns a read-only list of names of the all vector type fields defined in the database (i.e. fields of types BIT,~LINCOM,~LINTERP,~MULTIPLY,~PHASE,~POLYNOM,~RAW, SBIT). Notably, this list does not include /META subfields.

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

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 strings in the array can be obtained from a call to gd_nvectors(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 until gd_vector_list() is called again on the same DIRFILE object, or until the array is de-allocated by a call to gd_close(3).


Upon successful completion, gd_vector_list() returns a pointer to an array of strings containing the names of all the vector fields defined in the dirfile database. On error it returns NULL and sets the dirfile error to a non-zero error value. Possible error values are:
The library was unable to allocate memory.
The supplied dirfile was invalid.

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).