NAME
esetfunc,
easprintf,
efopen,
emalloc,
ecalloc,
erealloc,
ereallocarr,
estrdup,
estrndup,
estrlcat,
estrlcpy,
estrtoi,
estrtou,
evasprintf —
error-checked utility functions
LIBRARY
System Utilities Library (libutil, -lutil)
SYNOPSIS
#include <util.h>
void (*)(int, const char *, ...)
esetfunc(
void
(*)(int, const char *, ...));
int
easprintf(
char **
restrict str,
const char *
restrict fmt,
...);
FILE *
efopen(
const char
*p,
const char *m);
void *
ecalloc(
size_t
n,
size_t s);
void *
emalloc(
size_t
n);
void *
erealloc(
void
*p,
size_t n);
void
ereallocarr(
void
*p,
size_t n,
size_t s);
char *
estrdup(
const
char *s);
char *
estrndup(
const
char *s,
size_t len);
size_t
estrlcat(
char
*dst,
const char
*src,
size_t len);
size_t
estrlcpy(
char
*dst,
const char
*src,
size_t len);
intmax_t
estrtoi(
const
char * nptr,
int
base,
intmax_t lo,
intmax_t hi);
uintmax_t
estrtou(
const
char * nptr,
int
base,
uintmax_t lo,
uintmax_t hi);
int
evasprintf(
char
** restrict str,
const char
* restrict fmt,
...);
DESCRIPTION
The
easprintf(),
efopen(),
ecalloc(),
emalloc(),
erealloc(),
ereallocarr(),
estrdup(),
estrndup(),
estrlcat(),
estrlcpy(),
estrtoi(),
estrtou(), and
evasprintf() functions operate exactly as the corresponding
functions that do not start with an ‘e’ except that in case of an
error, they call the installed error handler that can be configured with
esetfunc().
For the string handling functions, it is an error when the destination buffer is
not large enough to hold the complete string. For functions that allocate
memory or open a file, it is an error when they would return a null pointer.
The default error handler is
err(3). The function
esetfunc() returns the previous error handler function. A
NULL
error handler will just call
exit(3).
SEE ALSO
asprintf(3),
calloc(3),
err(3),
exit(3),
fopen(3),
malloc(3),
realloc(3),
reallocarr(3),
strdup(3),
strlcat(3),
strlcpy(3),
strndup(3),
strtoi(3),
strtou(3),
vasprintf(3)
HISTORY
The
estrtoi(),
estrtou() and
ereallocarr() functions were added in
NetBSD 8.