noble (3) gd_add_spec.3.gz

Provided by: libgetdata-doc_0.11.0-13_all bug

NAME

       gd_add_spec, gd_madd_spec — add a field to a Dirfile

SYNOPSIS

       #include <getdata.h>

       int gd_add_spec(DIRFILE *dirfile, const char *line, int fragment_index);

       int gd_madd_spec(DIRFILE *dirfile, const char *line, const char *parent);

DESCRIPTION

       The  gd_add_spec()  function  adds  the  field  described  by the field specification line in line to the
       dirfile specified by dirfile.  The gd_madd_spec() function behaves similarly, but adds  the  field  as  a
       metafield  under  the  field  indicated  by the field parent.  Field specification lines are described in
       detail in dirfile-format(5).  Since Standards Version 7 (see  dirfile(5))  permits  specifying  metafield
       without  the  use of the /META directive, gd_add_spec() may also be used to add metafields, by specifying
       the metafield's full field code.  See dirfile-format(5) for full details.

       When using gd_madd_spec(), line should only contain a field specification, and not a /META directive.

       Passing these functions a directive line instead of a field specification line will result  in  a  syntax
       error.   These  functions  never  call  the  registered parser callback function, even if line contains a
       syntax error.

RETURN VALUE

       On success, gd_add_spec() and gd_madd_spec() return zero.   On error, a  negative-valued  error  code  is
       returned.  Possible error codes are:

       GD_E_ACCMODE
               The specified dirfile was opened read-only.

       GD_E_ALLOC
               The library was unable to allocate memory.

       GD_E_BAD_CODE
               The parent field code was not found, or was already a metafield.

       GD_E_BAD_DIRFILE
               The supplied dirfile was invalid.

       GD_E_BAD_INDEX
               The fragment_index argument was out of range.

       GD_E_FORMAT
               A syntax error was encountered in line.

       GD_E_IO An I/O error occurred while creating an empty binary file to be associated with a newly added RAW
               field.

       GD_E_LINE_TOO_LONG
               The supplied line was longer than the parser was able to deal with.  Line lengths are limited  by
               the storage size of size_t.

       GD_E_PROTECTED
               The  metadata  of  the  fragment  was protected from change.  Or, the creation of a RAW field was
               attempted and the data of the fragment was protected.

       GD_E_UNKNOWN_ENCODING
               The encoding scheme of the indicated format specification fragment is not known to  the  library.
               As  a result, the library was unable to create an empty binary file to be associated with a newly
               added RAW field.

       GD_E_UNSUPPORTED
               The encoding scheme of the indicated format specification fragment does not support  creating  an
               empty binary file to be associated with a newly added RAW field.

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

HISTORY

       The functions dirfile_add_spec() and dirfile_madd_spec() appeared in GetData-0.4.0.

       In GetData-0.7.0, these functions were renamed to gd_add_spec() and gd_madd_spec().

       In GetData-0.10.0, the error return from these functions changed from -1 to a negative-valued error code.

SEE ALSO

       gd_add(3),  all the gd_add_<entry-type> functions (e.g., gd_add_bit(3)), gd_error(3), gd_error_string(3),
       gd_madd(3), all the gd_madd_<entry-type> functions (e.g., gd_madd_bit(3)),  gd_metaflush(3),  gd_open(3),
       dirfile-format(5)