cgio_error_message
(char *error_msg)¶error_msg |
OUT: Error message from CGIO or the underlying database manager. |
ier
- Error status
- - -
Gets the error message for the last error encountered, and returns it in error_msg
, Maximum length of the error message is CGIO_MAX_ERROR_LENGTH
(80). In C, error_msg
should be dimensioned at least 81 in the calling routine to allow for the terminating '0'
. The function returns the error code corresponding to the error message.
cgio_error_code
(int *errcode, int *file_type)¶errcode |
OUT: The last error code from CGIO or the underlying database manager. |
file_type |
OUT: Where the last error was encountered. CGIO_FILE_NONE for an error coming from CGIO, else the type of database. |
- - -
Returns the last error code in errcode
and where is was generated in file_type
.
If the error code is < 0, then the error is from the CGIO library, and file_type
will be CGIO_FILE_NONE
, otherwise file_type
will be the type of database.
cgio_error_exit
(const char *msg)¶msg |
IN: An additional message to print, which prefixes the error message before exiting. This may be NULL or an empty string, in which case it is not printed. |
- - -
Prints msg
and any error message to stderr
and exits.
The exit code will be abort_flag
if it is set, else −1.
If msg
is NULL
or an empty string, then it is not printed.
cgio_error_abort
(int abort_flag)¶abort_flag |
IN: Abort on error flag. |
- - -
Sets the flag to abort (exit) when an error is encountered.
If abort_flag
is non-zero, then an error in the CGIO routines or database managers will cause cgio_error_exit()
to be called. The exceptions are cgio_is_supported()
, cgio_check_file()
, and cgio_is_link()
.
These routines will not cause an abort on an error.
This is a list of the possible return codes from the CGIO routines along with the error messages.
Code | Error Message |
---|---|
0 | no error |
−1 | invalid cgio index |
−2 | malloc/realloc failed |
−3 | unknown file open mode |
−4 | invalid file type |
−5 | filename is NULL or empty |
−6 | character string is too small |
−7 | file was not found |
−8 | pathname is NULL or empty |
−9 | no match for pathname |
−10 | error opening file for reading |
−11 | file opened in read-only mode |
−12 | NULL or empty string |
−13 | invalid configure option |
−14 | rename of tempfile file failed |
−15 | too many open files |
−16 | dimensions exceed that for a 32-bit integer |
Error codes from the ADF and HDF5 database managers.
Code | Error Message |
---|---|
1 | Integer number is less than a given minimum value |
2 | Integer value is greater than given maximum value |
3 | String length of zero of blank string detected |
4 | String length longer than maximum allowable length |
5 | String length is not an ASCII-Hex string |
6 | Too many ADF files opened |
7 | ADF file status was not recognized |
8 | ADF file open error |
9 | ADF file not currently opened |
10 | ADF file index out of legal range |
11 | Block/offset out of legal range |
12 | A string pointer is null |
13 | FSEEK error |
14 | FWRITE error |
15 | FREAD error |
16 | Internal error: Memory boundary tag bad |
17 | Internal error: Disk boundary tag bad |
18 | File Open Error: NEW - File already exists (see Note [1]) |
19 | ADF file format was not recognized |
20 | Attempt to free the RootNode disk information |
21 | Attempt to free the FreeChunkTable disk information |
22 | File Open Error: OLD - File does not exist (see Note [2]) |
23 | Entered area of unimplemented code |
24 | Subnode entries are bad |
25 | Memory allocation failed |
26 | Duplicate child name under a parent node |
27 | Node has no dimensions |
28 | Node’s number of dimensions is not in legal range |
29 | Specified child is not a child of the specified parent |
30 | Data-Type is too long |
31 | Invalid Data-Type |
32 | A pointer is null |
33 | Node had no data associated with it |
34 | Error zeroing out of memory |
35 | Requested data exceeds actual data available |
36 | Bad end value |
37 | Bad stride values |
38 | Minimum value is greater than maximum value |
39 | The format of this machine does not match a known signature (see Note [3]) |
40 | Cannot convert to or from an unknown native format |
41 | The two conversion formats are equal; no conversion done |
42 | The data format is not supported on a particular machine |
43 | File close error |
44 | Numeric overflow/underflow in data conversion |
45 | Bad start value |
46 | A value of zero is not allowable |
47 | Bad dimension value |
48 | Error state must be either a 0 (zero) or a 1 (one) |
49 | Dimensional specifications for disk and memory are unequal |
50 | Too many link levels are used; may be caused by a recursive link |
51 | The node is not a link. It was expected to be a link. |
52 | The linked-to node does not exist |
53 | The ADF file of a linked node is not accessible |
54 | A node ID of 0.0 is not valid |
55 | Incomplete data when reading multiple data blocks |
56 | Node name contains invalid characters |
57 | ADF file version incompatible with this library version |
58 | Nodes are not from the same file |
59 | Priority stack error |
60 | Machine format and file format are incomplete |
61 | Flush error |
62 | The node ID pointer is NULL |
63 | The maximum size for a file exceeded |
64 | Dimensions exceed that for a 32-bit integer |
70 | H5Glink:soft link creation failed |
71 | Node attribute doesn’t exist |
72 | H5Aopen:open of node attribute failed |
73 | H5Iget_name:failed to get node path from ID |
74 | H5Gmove:moving a node group failed |
75 | H5Gunlink:node group deletion failed |
76 | H5Gopen:open of a node group failed |
77 | H5Dget_space:couldn’t get node dataspace |
78 | H5Dopen:open of the node data failed |
79 | H5Dextend:couldn’t extend the node dataspace |
80 | H5Dcreate:node data creation failed |
81 | H5Screate_simple:dataspace creation failed |
82 | H5Acreate:node attribute creation failed |
83 | H5Gcreate:node group creation failed |
84 | H5Dwrite:write to node data failed |
85 | H5Dread:read of node data failed |
86 | H5Awrite:write to node attribute failed |
87 | H5Aread:read of node attribute failed |
88 | H5Fmount:file mount failed |
89 | Can’t move a linked-to node |
90 | Can’t change the data for a linked-to node |
91 | Parent of node is a link |
92 | Can’t delete a linked-to node |
93 | File does not exist or is not a HDF5 file |
94 | unlink (delete) of file failed |
95 | couldn’t get file index from node ID |
96 | H5Tcopy:copy of existing datatype failed |
97 | H5Aget_type:couldn’t get attribute datatype |
98 | H5Tset_size:couldn’t set datatype size |
99 | routine not implemented |
100 | H5L: Link target is not an HDF5 external link |
101 | HDF5: No external link feature available |
102 | HDF5: Internal problem with objinfo |
103 | HDF5: No value for external link |
104 | HDF5: Cannot unpack external link |
106 | HDF5: Root descriptor is NULL |
107 | dimensions need transposed - open in modify mode |
108 | invalid configuration option |
Note
[1] | The user is trying to create a new file and give it a name. The system has responded that the name has already been used. |
[2] | The user wants to open an existing file that supposedly has the given name. The system has responded that no file by that name exists. |
[3] | When ADF wakes up, it tries to figure out what data format the machine it is running on uses (e.g., IEEE big endian, IEEE little endian, Cray). If it doesn’t recognize the format, it can’t convert files created on other platforms to the current one, so it issues this error message and punts. |