table of contents
gd_put_carray_slice(3) | GETDATA | gd_put_carray_slice(3) |
NAME¶
gd_put_carray, gd_put_carray_slice — write CARRAY data to a dirfile databaseSYNOPSIS¶
#include <getdata.h>int gd_put_carray_slice(DIRFILE *dirfile, const
char *field_code, unsigned int start,
size_t len, gd_type_t data_type, const void
*data_in);
int gd_put_carray(DIRFILE *dirfile, const char
*field_code, gd_type_t data_type, const
void *data_in);
DESCRIPTION¶
The gd_put_carray_slice() function writes data to a dirfile(5) database specified by dirfile into the CARRAY scalar array field_code. The data in the field is converted from the data type specified by data_type, and read from in the user-supplied buffer data_in. The location of the first element of the field into which data is stored is given by start, and the number of elements stored is given by len. The gd_put_carray() function behaves similarly, except the whole scalar array is written. These interface cannot write to field represetations. The argument data_in must point to a valid memory location containing all the data to be written. The number of elements which will be stored by gd_put_carray() may be obtained by calling gd_carray_len(3). Unlike gd_putdata(3), writing data past the end of the field is not permitted. To add data to the CARRAY, first increase its length by calling gd_alter_carray(3), or another equivalent function. The data_type argument should be one of the following symbols, which indicates the type of the data pointed to by data_in:- GD_UINT8
- unsigned 8-bit integer
- GD_INT8
- signed (two's complement) 8-bit integer
- GD_UINT16
- unsigned 16-bit integer
- GD_INT16
- signed (two's complement) 16-bit integer
- GD_UINT32
- unsigned 32-bit integer
- GD_INT32
- signed (two's complement) 32-bit integer
- GD_UINT64
- unsigned 64-bit integer
- GD_INT64
- signed (two's complement) 64-bit integer
- GD_FLOAT32
- IEEE-754 standard 32-bit single precision floating point number
- GD_FLOAT64
- IEEE-754 standard 64-bit double precision floating point number
- GD_COMPLEX64
- C99-conformant 64-bit single precision complex number
- GD_COMPLEX128
- C99-conformant 128-bit double precision complex number
RETURN VALUE¶
On success, gd_put_carray() and gd_put_carray_slice() return zero. On error, they return -1 and set the dirfile error to a non-zero value. Possible error values are:- GD_E_ACCMODE
- The specified dirfile was opened read-only.
- 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 a type other than CARRAY. The caller should use gd_putdata(3), gd_put_constant(3), or gd_put_string(3) instead.
- GD_E_BAD_REPR
- A representation suffix in the field definition was invalid, or an attempt was made to write to a representation, instead of the underlying field.
- GD_E_BAD_TYPE
- An invalid data_type was specified.
- GE_E_BOUNDS
- A request for data beyond the end of the field was made.
- 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.
SEE ALSO¶
dirfile(5), gd_carray_len(3), gd_carrays(3), gd_error(3), gd_error_string(3), gd_get_carray_slice(3), gd_open(3), gd_put_constant(3)4 Novmeber 2010 | Version 0.7.0 |