NAME
buffer_puthdr, buffer_gethdr - write/read file header
SYNOPSIS
#include <limb/buffer.h>
ssize_t buffer_puthdr(buffer *buf, u32 magic, u64 ver) int buffer_gethdr(buffer *buf, u32 *magic, u64 *ver)
DESCRIPTION
The buffer_puthdr
() function writes into the buffer buf
the magic magic
as
a 32bit unsigned integer in big-endian followed by the unsigned integer ver
in
pack-trimmed form, as described in u64_pack_trim(3).
Such a combinaison is intended to be used as a file header, used notably for files containing patrim(5)-encoded data.
The buffer_get_hdr
() function reads such an header and places the 32bit magic
number as the value pointed by magic
, and the version number as the value
pointer by ver
.
RETURN VALUE
The buffer_puthdr
() function returns the number of bytes written into the
buffer on success. Otherwise, it returns -1.
The buffer_gethdr
() function returns 1 on success, and 0 on failure.
ERRORS
The buffer_puthdr
() function may fail and set errno
for any of the errors
specified for buffer_putv(3).
The buffer_gethdr
() function may fail if :
EPIPE
Not enough data could be read from the buffer before reaching end-of-file.
It may also fail for any of the error specified for buffer_get(3) or buffer_fill(3).