|
NAME | LIBRARY | SYNOPSIS | DESCRIPTION | RETURN VALUE | ATTRIBUTES | VERSIONS | STANDARDS | HISTORY | SEE ALSO | COLOPHON |
|
|
|
cfree(3) Library Functions Manual cfree(3)
cfree - free allocated memory
Standard C library (libc, -lc)
#include <stdlib.h>
/* In SunOS 4 */
int cfree(void *ptr);
/* In glibc or FreeBSD libcompat */
void cfree(void *ptr);
/* In SCO OpenServer */
void cfree(unsigned int n, unsigned int size;
char ptr[size * n], unsigned int n, unsigned int size);
/* In Solaris watchmalloc.so.1 */
void cfree(size_t n, size_t size;
void ptr[size * n], size_t n, size_t size);
Feature Test Macro Requirements for glibc (see
feature_test_macros(7)):
cfree():
Since glibc 2.19:
_DEFAULT_SOURCE
glibc 2.19 and earlier:
_BSD_SOURCE || _SVID_SOURCE
This function should never be used. Use free(3) instead.
Starting with glibc 2.26, it has been removed from glibc.
1-arg cfree
In glibc, the function cfree() is a synonym for free(3), "added
for compatibility with SunOS".
Other systems have other functions with this name. The
declaration is sometimes in <stdlib.h> and sometimes in
<malloc.h>.
3-arg cfree
Some SCO and Solaris versions have malloc libraries with a
3-argument cfree(), apparently as an analog to calloc(3).
If you need it while porting something, add
#define cfree(p, n, s) free((p))
to your file.
A frequently asked question is "Can I use free(3) to free memory
allocated with calloc(3), or do I need cfree()?" Answer: use
free(3).
An SCO manual writes: "The cfree routine is provided for
compliance to the iBCSe2 standard and simply calls free. The n
and size arguments to cfree are not used."
The SunOS version of cfree() (which is a synonym for free(3))
returns 1 on success and 0 on failure. In case of error, errno is
set to EINVAL: the value of ptr was not a pointer to a block
previously allocated by one of the routines in the malloc(3)
family.
For an explanation of the terms used in this section, see
attributes(7).
┌───────────────────────┬───────────────┬────────────────────────┐
│ Interface │ Attribute │ Value │
├───────────────────────┼───────────────┼────────────────────────┤
│ cfree() │ Thread safety │ MT-Safe /* In glibc */ │
└───────────────────────┴───────────────┴────────────────────────┘
The 3-argument version of cfree() as used by SCO conforms to the
iBCSe2 standard: Intel386 Binary Compatibility Specification,
Edition 2.
None.
Removed in glibc 2.26.
malloc(3)
This page is part of the man-pages (Linux kernel and C library
user-space interface documentation) project. Information about
the project can be found at
⟨https://www.kernel.org/doc/man-pages/⟩. If you have a bug report
for this manual page, see
⟨https://git.kernel.org/pub/scm/docs/man-pages/man-pages.git/tree/CONTRIBUTING⟩.
This page was obtained from the tarball man-pages-6.15.tar.gz
fetched from
⟨https://mirrors.edge.kernel.org/pub/linux/docs/man-pages/⟩ on
2025-08-11. If you discover any rendering problems in this HTML
version of the page, or you believe there is a better or more up-
to-date source for the page, or you have corrections or
improvements to the information in this COLOPHON (which is not
part of the original manual page), send a mail to
[email protected]
Linux man-pages 6.15 2025-06-28 cfree(3)