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).