NAME¶
gd_get_string — retrieve a string from a dirfile database
SYNOPSIS¶
#include <getdata.h>
size_t gd_get_string(DIRFILE *dirfile, const
char *field_code, size_t len, char
*data_out);
DESCRIPTION¶
The
gd_get_string() function queries a
dirfile(5) database specified by
dirfile for the string scalar
field_code, which should not
contain a representation suffix. The first
len characters of the string
scalar are stored in the user-supplied buffer
data_out.
The
dirfile argument must point to a valid DIRFILE object previously
created by a call to
gd_open(3).
If
len equals zero, or if
data_out equals NULL, no data will be
copied to
data_out, but the length of the string scalar will still be
returned by
gd_get_string(). Otherwise, the argument
data_out
must point to a valid memory location of sufficient size to hold at least
len characters. If the length of the string scalar is greater than
len,
data_out will not be NULL-terminated.
RETURN VALUE¶
On success,
gd_get_string() returns the actual length of the specified
string scalar, including the trailing NULL character. A return value greater
than
len indicates that the output string is not null terminated.
On error, it returns 0 and sets the dirfile error to a non-zero value. Possible
error values are:
- GD_E_BAD_CODE
- The field specified by field_code was not found in the
database.
- GD_E_BAD_DIRFILE
- An invalid dirfile was supplied.
- GD_E_BAD_FIELD_TYPE
- The supplied field_code referred to a field of type other than
STRING. The caller should use gd_getdata(3), or
gd_get_constant(3) instead.
- GD_E_BAD_TYPE
- An invalid return_type was specified.
- GD_E_INTERNAL_ERROR
- 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.
The dirfile error may be retrieved by calling
gd_error(3). A descriptive
error string for the last error encountered may be obtained from a call to
gd_error_string(3).
SEE ALSO¶
dirfile(5),
gd_open(3),
gd_error(3),
gd_error_string(3),
gd_put_string(3)