These functions consist of both basic functions for reading, writing and creation of database items and simple I/O functions that build upon such operations. They are mainly contained within the `Gap4/IO.c' file.
The return codes do vary greatly from function to function. Most return 0 for success and -1 for failure. However some will return other codes. In general it is best to check equality to the success code rather than equality to a specific failure code.
and read as an array of GCardinals. elements indicates the number of array elements and not the size of the array in bytes.
BitmapRead reads records of type
GT_Bitmap. The bitmap is
allocated by this function. elements indicates the number of bits and
not the size of the bitmap in bytes.
#include <IO.h> int GT_Write( GapIO *io, int rec, void *buf, int len, GCardinal type); int GT_Write_cached( GapIO *io, int read, GReadings *r); int TextWrite( GapIO *io, int rec, char *buf, int len); int DataWrite( GapIO *io, int rec, void *buf, int len, int size); int ArrayWrite( GapIO *io, int rec, int elements, Array a); int BitmapWrite( GapIO *io, int rec, Bitmap b);
These functions write record number rec with the appropriate data type. They return zero for success and an error code for failure.
GT_Write writes arbitrary records of type type. This is usually a
structure. Do not use this function for writing GReadings structures.
For best compatibility, use the
GT_Write_cached is an interface to
GT_Write which also updates
the in-memory reading cache. For best compatibility, use the
TextWrite writes a record of type
GT_Text. It is used to write
text only strings.
DataWrite writes a record of type
GT_Data. It is used to write
binary data such as sequence confidence values.
ArrayWrite writes a record of type
GT_Array. The array must be
an array of GCardinal values. elements indicates the number of
array elements and not the size of the array in bytes.
BitmapWrite writes a record of type
indicates the number of bits and not the size of the bitmap in bytes.
#include <IO.h> GapIO *io_handle( f_int *handle); f_int *handle_io( GapIO *io);
These two routines convert between GapIO pointers and integer handles. Both the Fortran and Tcl code uses integer handles due to no support for structures.
io_handle takes a pointer to an integer handle and returns the
associated GapIO pointer. It returns NULL for failure.
handle_io takes a GapIO pointer and returns a pointer to a
integer handle. It returns NULL for failure.