GD_ALTER_SPEC(3) - man page online | library functions

Modify a field in a dirfile.

16 October 2014
gd_alter_spec(3)                             GETDATA                             gd_alter_spec(3)


gd_alter_spec, gd_malter_spec — modify a field in a dirfile


#include <getdata.h> int gd_alter_spec(DIRFILE *dirfile, const char *line, int recode); int gd_malter_spec(DIRFILE *dirfile, const char *line, const char *parent, int recode);


The gd_alter_spec() function modifies the field described by the field specification line in line to the dirfile specified by dirfile. The gd_malter_spec() function behaves simi‐ larly, but modifies the metafield under the field indicated by the field code parent. Field specification lines are described in detail in dirfile-format(5). The name of the field to be modified, which must already exist, will be obtained from the field specification line. When adding a metafield, line should only contain a field spec‐ ification, and not a /META directive. If the modified field is of type RAW and the recode argument is non-zero, the binary file associated with the field will be converted for changes in data type and samples-per- frame. In this case, the field's I/O pointer will be reset to the beginning-of-frame. If recode is zero, no binary file conversion will take place. If the modified field is of type LINTERP and the recode argument is non-zero, the look-up table file will be moved if line specifies a different path, overwriting an existing file with the new pathname, if present. If the field specified by field_code is of type other than RAW or LINTERP, the recode argument is ignored. 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_alter_spec() and gd_malter_spec() return zero. On error, -1 is returned and the dirfile error is set to a non-zero error value. Possible error values 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 field specified in line was not found, or the parent field code was not found. GD_E_BAD_DIRFILE The supplied dirfile was invalid. GD_E_FORMAT A syntax error was encountered in line. GD_E_IO An I/O error occurred while translating the binary file associated with a modified RAW field, or an I/O error occurred while attempting to rename a LINTERP table file. GD_E_LINE_TOO_LONG 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. GD_E_PROTECTED The metadata of the fragment was protected from change. Or, a request to trans‐ late the binary file associated with a RAW field was attempted, but 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 translate the binary file be associated with a modified RAW field. GD_E_UNSUPPORTED The encoding scheme of the indicated format specification fragment does not sup‐ port translating the empty binary file associated with a modified 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_alter_bit(3), gd_alter_const(3), gd_alter_entry(3), gd_alter_lincom(3), gd_alter_lin‐ terp(3), gd_alter_multiply(3), gd_alter_phase(3), gd_alter_raw(3), gd_alter_spec(3), gd_metaflush(3), gd_open(3), gd_error(3), gd_error_string(3), dirfile-format(5)
Version 0.9.0 16 October 2014 gd_alter_spec(3)
This manual Reference Other manuals
gd_alter_spec(3) referred by dirfile-encoding(5) | gd_alter_bit(3) | gd_alter_entry(3) | gd_getdata(3)
refer to dirfile-format(5) | gd_alter_bit(3) | gd_alter_entry(3) | gd_cbopen(3) | gd_error(3) | gd_error_string(3) | gd_metaflush(3)