summaryrefslogtreecommitdiffstats
path: root/doxygen/dox/cookbook/Attributes.dox
blob: 68fd15906d9fe21b05c1e40549ec43fd4bdff026 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
/** \page Attributes

\section Attributes

\subsection CB_LargeAttributes Creating "Large" HDF5 Attributes

\par Problem
You would like to use HDF5 attributes the size of whose values
exceeds a few dozen kilobytes

\par Solution
A file format change in the HDF5 1.8.x family of library releases made it
possible to have attributes larger than about 64 KiB. Ensure that the lower
library version bound for new HDF5 item creation is at least 1.8.x, and create
larger attributes as usual.\n
In the example below, we create an attribute whose value occupies 4 MiB.

\note This feature is only supported in HDF5 1.8.x+

\snippet{lineno} Attributes.c large_attribute

\par Discussion
Large attributes are supported only in HDF5 versions 1.8.x and higher.
This has implications for the accessibility of your HDF5 files and
is your call.\n
Since there are no size limitations for large attributes, it might
seem tempting to mistake them for dataset stand-ins. This is not the
case, for at least two reasons:
1. Attributes decorate HDF5 objects, have their own local namespace,
   and can't be link targets.
2. Attribute I/O treats the attribute value as atomic, i.e., there
   is no support for partial I/O. A large attribute will always be
   read or written in its entirety.

\par See Also
See \ref CB_MaintainCompat for HDF5 compatibility implications.

 */