Last modified: 11 January 2010
Name: H5Lunpack_elink_val
Signature:
herr_t H5Lunpack_elink_val( char *ext_linkval, size_t link_size, unsigned *flags, const char **filename, const char **obj_path )

Purpose:
Decodes external link information.

Description:
H5Lunpack_elink_val decodes the external link information returned by H5Lget_val in the ext_linkval buffer.

ext_linkval should be the buffer set by H5Lget_val and will consist of two NULL-terminated strings, the filename and object path, one after the other.

Given this buffer, H5Lunpack_elink_val creates pointers to the filename and object path within the buffer and returns them in filename and obj_path, unless they are passed in as NULL.

H5Lunpack_elink_val requires that ext_linkval contain a concatenated pair of null-terminated strings, so use of this function on a string that is not an external link udata buffer may result in a segmentation fault. This failure can be avoided by adhering to the following procedure:

  1. Call H5Lget_info to get the link type and the size of the link value.
  2. Verify that the link is an external link, i.e., that its link type is H5L_TYPE_EXTERNAL.
  3. Call H5Lget_val to get the link value.
  4. Call H5Lunpack_elink_val to unpack that value.

Parameters:
const char *ext_linkval     IN: Buffer containing external link information
size_t link_size IN: Size, in bytes, of the ext_linkval buffer
unsigned *flags OUT: External link flags, packed as a bitmap
(Reserved as a bitmap for flags; no flags are currently defined, so the only valid value is 0.)
const char **filename OUT: Returned filename
const char **obj_path OUT: Returned object path, relative to filename

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

Fortran90 Interface:
None.

History:
Release     C
1.8.0 Function introduced in this release.