Provided by: publib-dev_0.40-3build1_amd64 bug

NAME

       xmalloc, xrealloc, xfree, xstrdup, xmemdup, memdup - memory allocation functions for Publib

SYNOPSIS

       #include <publib.h>

       void *xmalloc(size_t bytes);
       void *xrealloc(void *ptr, size_t bytes);
       void xfree(void *ptr);
       char *xstrdup(const char *string);
       void *memdup(const void *mem, size_t bytes);
       void *xmemdup(const void *mem, size_t bytes);

DESCRIPTION

       These  functions are utility functions for memory allocation from the publib library.  xmalloc, xrealloc,
       and xfree are error checking versions of  the  standard  library  routines  malloc,  realloc,  and  free,
       respectively.   They are guaranteed to never return unless there was no problem: if, for example, xmalloc
       is unable to allocate the requested amount of memory, it prints  an  error  message  and  terminates  the
       program.  Hence, the caller does not need to check for a NULL return value, and the code that calls these
       functions is simpler due to the lack of error checks.

       Similarly, xstrdup is an error checking version of the common (though not standard) strdup routine, which
       creates  a  duplicate  of a string by allocating memory for the copy with malloc.  (For systems that lack
       strdup, publib provides one in its portability module; it is always declared in <publib.h>.)

       memdup is similar to strdup, it creates a copy of an arbitrary memory area (the arguments are  a  pointer
       to  the  beginning  of the area, and its size) by allocating memory for the copy with malloc.  xmemdup is
       its error checking version.

NOTE

       xmalloc and xrealloc treat a request to allocate a block of 0 bytes as an error.  xrealloc will allow its
       first argument to be NULL.

SEE ALSO

       publib(3), malloc(3), strdup(3)

AUTHOR

       Lars Wirzenius (lars.wirzenius@helsinki.fi)