Provided by: libgetdata-dev_0.7.3-6_i386 bug


       gd_add_spec, gd_madd_spec — add a field to a dirfile


       #include <getdata.h>

       int gd_add_spec(DIRFILE *dirfile, const char *line, int

       int gd_madd_spec(DIRFILE *dirfile, const char *line, const char


       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.


       On  success,  gd_add_spec() and gd_madd_spec() return zero.   On error,
       -1 is returned and the dirfile error is set to a non-zero error  value.
       Possible error values are:

               The specified dirfile was opened read-only.

               The library was unable to allocate memory.

               The  parent  field  code  was  not  found,  or  was  already  a

               The supplied dirfile was invalid.

               The fragment_index argument was out of range.

               A syntax error was encountered in line.

               The supplied line was longer than the parser was able  to  deal
               with.   Lines  are  limited by the storage size of ssize_t.  On
               32-bit systems, this limits line to 2**31 bytes.  The limit  is
               larger on 64-bit systems.

               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.

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

               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.

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


       gd_add(3),     gd_add_bit(3),     gd_add_carray(3),    gd_add_const(3),
       gd_add_divide(3),         gd_add_lincom(3),          gd_add_linterp(3),
       gd_add_multiply(3),  gd_add_phase(3),  gd_add_recip(3),  gd_add_raw(3),
       gd_error(3),    gd_error_string(3),     gd_madd(3),     gd_madd_bit(3),
       gd_madd_carray(3),         gd_madd_const(3),         gd_madd_divide(3),
       gd_madd_lincom(3),       gd_madd_linterp(3),       gd_madd_multiply(3),
       gd_madd_phase(3),         gd_madd_polynom(3),         gd_madd_recip(3),
       gd_madd_string(3), gd_metaflush(3), gd_open(3), dirfile-format(5)