dirfile_alter_spec (3) Linux Manual Page
NAME
dirfile_alter_spec, dirfile_malter_spec — modify a field in a dirfile
SYNOPSIS
#include <getdata.h>
-
int dirfile_alter_spec(DIRFILE *dirfile, const char *line,intrecode);int dirfile_malter_spec(DIRFILE *dirfile, const char *line,const char *parent, intrecode);
DESCRIPTION
dirfile_alter_spec() function modifies the field described by the field specification line in line to the dirfile specified by dirfile. The dirfile_malter_spec() function behaves similarly, 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 specification, 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. 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 entry->table 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.
RETURN VALUE
On success, dirfile_alter_spec() and dirfile_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_PROTECTED- The metadata of the fragment was protected from change. Or, a request to translate the binary file associated with a
RAWfield was attempted, but the data of the fragment was protected. GD_E_RAW_IO- An I/O error occurred while translating the binary file associated with a modified
RAWfield, or an I/O error occurred while attempting to rename aLINTERPtable file. GD_E_UNKNOWN_ENCODING- The encoding scheme of the specified format file fragment is not known to the library. As a result, the library was unable to translate the binary file be associated with a modified
RAWfield. GD_E_UNSUPPORTED- The encoding scheme of the specified format file fragment does not support translating the empty binary file associated with a modified
RAWfield. The dirfile error may be retrieved by callingget_error(3). A descriptive error string for the last error encountered can be obtained from a call toget_error_string(3).
SEE ALSO
dirfile_alter_bit(3), dirfile_alter_const(3), dirfile_alter_entry(3), dirfile_alter_lincom(3), dirfile_alter_linterp(3), dirfile_alter_multiply(3), dirfile_alter_phase(3), dirfile_alter_raw(3), dirfile_alter_spec(3), dirfile_metaflush(3), dirfile_open(3), get_error(3), get_error_string(3), dirfile-format(5)
