bmalloc, bcalloc, brealloc, bstrdup, bstrndup

(Checked memory allocation)

SYNOPSIS

#include <tap/basic.h>

void *bmalloc(size_t size);

void *bcalloc(size_t n, size_t size);

void *brealloc(void *ptr, size_t size);

char *bstrdup(const char *string);

char *bstrndup(const char *string, size_t size);

DESCRIPTION

These functions are wrappers around the standard C memory allocation functions. They each check whether the memory allocation succeeded, returning the newly allocated memory on success and calling sysbail() on failure. They're intended for use inside TAP test cases where the test case should be aborted if memory allocation fails, and avoid the need to check each allocation as it's performed.

RETURN VALUE

bmalloc() and bcalloc() return a pointer to the newly allocated memory, and brealloc() a pointer to the reallocated memory (which may or may not be the same as ptr), identical to their standard C counterparts. bstrdup() returns a pointer to a newly allocated copy of string. bstrndup() does the same, but copies at most size characters of string and always nul-terminates the returned string. None of these functions may return NULL; if memory allocation fails, they will abort the program.

CAVEATS

bmalloc() and bcalloc() do not guard against allocating 0 bytes, just calling the underlying C library functions, and may return NULL in that case on some platforms.

AUTHOR

Russ Allbery <eagle@eyrie.org>

COPYRIGHT AND LICENSE

Copyright 2011-2013 Russ Allbery <eagle@eyrie.org>

Copying and distribution of this file, with or without modification, are permitted in any medium without royalty provided the copyright notice and this notice are preserved. This file is offered as-is, without any warranty.

SPDX-License-Identifier: FSFAP

SEE ALSO

calloc(3), malloc(3), realloc(3), strdup(3), strndup(3), sysbail(3)

The current version of the C TAP Harness library is available from its web page at <https://www.eyrie.org/~eagle/software/c-tap-harness/>.

Last spun 2022-12-12 from POD modified 2019-03-28