| .\" Copyright (c) 2003 Andries Brouwer (aeb@cwi.nl) |
| .\" |
| .\" %%%LICENSE_START(GPLv2+_DOC_FULL) |
| .\" This is free documentation; you can redistribute it and/or |
| .\" modify it under the terms of the GNU General Public License as |
| .\" published by the Free Software Foundation; either version 2 of |
| .\" the License, or (at your option) any later version. |
| .\" |
| .\" The GNU General Public License's references to "object code" |
| .\" and "executables" are to be interpreted as the output of any |
| .\" document formatting or typesetting system, including |
| .\" intermediate and printed output. |
| .\" |
| .\" This manual is distributed in the hope that it will be useful, |
| .\" but WITHOUT ANY WARRANTY; without even the implied warranty of |
| .\" MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
| .\" GNU General Public License for more details. |
| .\" |
| .\" You should have received a copy of the GNU General Public |
| .\" License along with this manual; if not, see |
| .\" <http://www.gnu.org/licenses/>. |
| .\" %%%LICENSE_END |
| .\" |
| .TH CFREE 3 2021-03-22 "" "Linux Programmer's Manual" |
| .SH NAME |
| cfree \- free allocated memory |
| .SH SYNOPSIS |
| .nf |
| .PP |
| .B "#include <stdlib.h>" |
| .PP |
| /* In SunOS 4 */ |
| .BI "int cfree(void *" ptr ); |
| .PP |
| /* In glibc or FreeBSD libcompat */ |
| .BI "void cfree(void *" ptr ); |
| .PP |
| /* In SCO OpenServer */ |
| .BI "void cfree(char *" ptr ", unsigned int " num ", unsigned int " size ); |
| .PP |
| /* In Solaris watchmalloc.so.1 */ |
| .BI "void cfree(void *" ptr ", size_t " nelem ", size_t " elsize ); |
| .fi |
| .PP |
| .RS -4 |
| Feature Test Macro Requirements for glibc (see |
| .BR feature_test_macros (7)): |
| .RE |
| .PP |
| .BR cfree (): |
| .nf |
| Since glibc 2.19: |
| _DEFAULT_SOURCE |
| Glibc 2.19 and earlier: |
| _BSD_SOURCE || _SVID_SOURCE |
| .fi |
| .SH DESCRIPTION |
| This function should never be used. |
| Use |
| .BR free (3) |
| instead. |
| Starting with version 2.26, it has been removed from glibc. |
| .SS 1-arg cfree |
| In glibc, the function |
| .BR cfree () |
| is a synonym for |
| .BR free (3), |
| "added for compatibility with SunOS". |
| .PP |
| Other systems have other functions with this name. |
| The declaration is sometimes in |
| .I <stdlib.h> |
| and sometimes in |
| .IR <malloc.h> . |
| .SS 3-arg cfree |
| Some SCO and Solaris versions have malloc libraries with a 3-argument |
| .BR cfree (), |
| apparently as an analog to |
| .BR calloc (3). |
| .PP |
| If you need it while porting something, add |
| .PP |
| .in +4n |
| .EX |
| #define cfree(p, n, s) free((p)) |
| .EE |
| .in |
| .PP |
| to your file. |
| .PP |
| A frequently asked question is "Can I use |
| .BR free (3) |
| to free memory allocated with |
| .BR calloc (3), |
| or do I need |
| .BR cfree ()?" |
| Answer: use |
| .BR free (3). |
| .PP |
| An SCO manual writes: "The cfree routine is provided for compliance |
| to the iBCSe2 standard and simply calls free. |
| The num and size |
| arguments to cfree are not used." |
| .SH RETURN VALUE |
| The SunOS version of |
| .BR cfree () |
| (which is a synonym for |
| .BR free (3)) |
| returns 1 on success and 0 on failure. |
| In case of error, |
| .I errno |
| is set to |
| .BR EINVAL : |
| the value of |
| .I ptr |
| was not a pointer to a block previously allocated by |
| one of the routines in the |
| .BR malloc (3) |
| family. |
| .SH VERSIONS |
| The |
| .BR cfree () |
| function was removed |
| .\" commit 025b33ae84bb8f15b2748a1d8605dca453fce112 |
| from glibc in version 2.26. |
| .SH ATTRIBUTES |
| For an explanation of the terms used in this section, see |
| .BR attributes (7). |
| .ad l |
| .nh |
| .TS |
| allbox; |
| lbx lb lb |
| l l l. |
| Interface Attribute Value |
| T{ |
| .BR cfree () |
| T} Thread safety MT-Safe /* In glibc */ |
| .TE |
| .hy |
| .ad |
| .sp 1 |
| .SH CONFORMING TO |
| The 3-argument version of |
| .BR cfree () |
| as used by SCO conforms to the iBCSe2 standard: |
| Intel386 Binary Compatibility Specification, Edition 2. |
| .SH SEE ALSO |
| .BR malloc (3) |