Walks the specified error stack, calling the specified function


H5E_WALK2(estack_id, direction, func, client_data)


<pre><code class="language-c">herr_t H5Ewalk2( hid_t estack_id, H5E_direction_t direction, H5E_walk2_t func, void * client_data )</code></pre>

hid_t estack_idIN: Error stack identifier
H5E_direction_t direction    IN: Direction in which the error stack is to be walked
H5E_walk2_t funcIN: Function to be called for each error encountered
void * client_dataIN: Data to be passed with func


H5E_WALK2 walks the error stack specified by estack_id for the current thread and calls the function specified in func for each error along the way.

If the value of estack_id is H5E_DEFAULT, then H5E_WALK2 walks the current error stack.

direction specifies whether the stack is walked from the inside out or the outside in. A value of H5E_WALK_UPWARD means to begin with the most specific error and end at the API; a value of H5E_WALK_DOWNWARD means to start at the API and end at the innermost function where the error was first detected.

func, a function compliant with the H5E_walk2_t prototype, will be called for each error in the error stack. Its arguments will include an index number n (beginning at zero regardless of stack traversal direction), an error stack entry err_desc, and the client_data pointer passed toH5E_print. The H5E_walk2_t prototype is as follows:

typedef herr_t (*H5E_walk2_t)(unsigned n, const H5E_error2_t *err_desc, void *client_data)

where the parameters have the following meanings:

unsigned nIndexed position of the error in the stack
const H5E_error2_t *err_desc

Pointer to a data structure describing the error

(This structure is currently described only in the source code file hdf5/src/H5Epublic.h. That file also contains the definitive list of major and minor error codes; that information will eventually be presented as an appendix to this HDF5 Reference Manual.)

void *client_dataPointer to client data in the format expected by the user-defined function

Programming Note for C++ Developers Using C Functions:

If a C routine that takes a function pointer as an argument is called from within C++ code, the C routine should be returned from normally.

Examples of this kind of routine include callbacks such as H5P_SET_ELINK_CB and H5P_SET_TYPE_CONV_CB and functions such as H5T_CONVERT and H5E_WALK2.

Exiting the routine in its normal fashion allows the HDF5 C library to clean up its work properly. In other words, if the C++ application jumps out of the routine back to the C++ “catch” statement, the library is not given the opportunity to close any temporary data structures that were set up when the routine was called. The C++ application should save some state as the routine is started so that any problem that occurs might be diagnosed.


Returns a non-negative value if successful; otherwise returns a negative value.


Coming Soon!

Release    C
1.8.0Function introduced in this release.