H5Eset_auto
(
H5E_auto_t func
,
void *client_data
)
H5Eset_auto
(
hid_t estack_id
,
H5E_auto_t func
,
void *client_data
)
H5Eset_auto
is a macro that is mapped to either
H5Eset_auto1
or
H5Eset_auto2
,
depending on the needs of the application.
Such macros are provided to facilitate application compatibility. Their use and mappings are fully described in “API Compatibility Macros in HDF5”; we urge you to read that document closely.
When both the HDF5 Library and the application are built and
installed with no specific compatibility flags,
H5Eset_auto
is mapped to the most recent version of
the function, currently
H5Eset_auto2
.
If the library and/or application is compiled for Release 1.6
emulation, H5Eset_auto
will be mapped to
H5Eset_auto1
.
Function-specific flags are available to override these settings
on a function-by-function basis when the application is compiled.
Specific compile-time compatibility flags and the resulting mappings are as follows:
Compatibility setting | H5Eset_auto mapping |
---|---|
Global settings |
|
No compatibility flag | H5Eset_auto2 |
Enable deprecated symbols | H5Eset_auto2 |
Disable deprecated symbols | H5Eset_auto2 |
Emulate Release 1.6 interface |
H5Eset_auto1 |
Function-level macros |
|
H5Eset_auto_vers = 2 |
H5Eset_auto2 |
H5Eset_auto_vers = 1 |
H5Eset_auto1 |
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
H5Pset_elink_cb
and H5Pset_type_conv_cb
and functions such as H5Tconvert
and
H5Ewalk2
.
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.
SUBROUTINE h5eset_auto_f(printflag, hdferr) INTEGER, INTENT(IN) :: printflag !flag to turn automatic error !printing on or off !possible values are: !printon (1) !printoff(0) INTEGER, INTENT(OUT) :: hdferr ! Error code END SUBROUTINE h5eset_auto_f
Release | Change |
1.8.0 | The function
H5Eset_auto renamed to H5Eset_auto1
and deprecated in this release.
The macro H5Eset_auto
and the function H5Eset_auto2
introduced in this release. |
1.8.8 | Fortran 2003 version of Fortran subroutine added in this release. |