Manual Reference Pages - XSTRDUP (3)
xmalloc, xrealloc, xfree, xstrdup, xmemdup, memdup - memory
allocation functions for Publib
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);
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.
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.
publib(3), malloc(3), strdup(3)
Lars Wirzenius (firstname.lastname@example.org)
|Publib ||XMALLOC (3) ||C Programmer's Manual |
Visit the GSP FreeBSD Man Page Interface.
Output converted with manServer 1.07.