]>
Commit | Line | Data |
---|---|---|
fea681da MK |
1 | .\" Copyright (c) 2003 Andries Brouwer (aeb@cwi.nl) |
2 | .\" | |
1dd72f9c | 3 | .\" %%%LICENSE_START(GPLv2+_DOC_FULL) |
fea681da MK |
4 | .\" This is free documentation; you can redistribute it and/or |
5 | .\" modify it under the terms of the GNU General Public License as | |
6 | .\" published by the Free Software Foundation; either version 2 of | |
7 | .\" the License, or (at your option) any later version. | |
8 | .\" | |
9 | .\" The GNU General Public License's references to "object code" | |
10 | .\" and "executables" are to be interpreted as the output of any | |
11 | .\" document formatting or typesetting system, including | |
12 | .\" intermediate and printed output. | |
13 | .\" | |
14 | .\" This manual is distributed in the hope that it will be useful, | |
15 | .\" but WITHOUT ANY WARRANTY; without even the implied warranty of | |
16 | .\" MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |
17 | .\" GNU General Public License for more details. | |
18 | .\" | |
19 | .\" You should have received a copy of the GNU General Public | |
c715f741 MK |
20 | .\" License along with this manual; if not, see |
21 | .\" <http://www.gnu.org/licenses/>. | |
6a8d8745 | 22 | .\" %%%LICENSE_END |
fea681da | 23 | .\" |
4b8c67d9 | 24 | .TH CFREE 3 2017-09-15 "" "Linux Programmer's Manual" |
fea681da MK |
25 | .SH NAME |
26 | cfree \- free allocated memory | |
27 | .SH SYNOPSIS | |
28 | .nf | |
68e4db0a | 29 | .PP |
fea681da | 30 | .B "#include <stdlib.h>" |
68e4db0a | 31 | .PP |
fea681da MK |
32 | /* In SunOS 4 */ |
33 | .BI "int cfree(void *" ptr ); | |
68e4db0a | 34 | .PP |
fea681da MK |
35 | /* In glibc or FreeBSD libcompat */ |
36 | .BI "void cfree(void *" ptr ); | |
68e4db0a | 37 | .PP |
fea681da MK |
38 | /* In SCO OpenServer */ |
39 | .BI "void cfree(char *" ptr ", unsigned " num ", unsigned " size ); | |
68e4db0a | 40 | .PP |
fea681da MK |
41 | /* In Solaris watchmalloc.so.1 */ |
42 | .BI "void cfree(void *" ptr ", size_t " nelem ", size_t " elsize ); | |
43 | .fi | |
68e4db0a | 44 | .PP |
cc4615cc MK |
45 | .in -4n |
46 | Feature Test Macro Requirements for glibc (see | |
47 | .BR feature_test_macros (7)): | |
48 | .in | |
68e4db0a | 49 | .PP |
cc4615cc | 50 | .BR cfree (): |
51c612fb MK |
51 | Since glibc 2.19: |
52 | _DEFAULT_SOURCE | |
53 | Glibc 2.19 and earlier: | |
54 | _BSD_SOURCE || _SVID_SOURCE | |
fea681da | 55 | .SH DESCRIPTION |
c13182ef MK |
56 | This function should never be used. |
57 | Use | |
fea681da MK |
58 | .BR free (3) |
59 | instead. | |
ceaad4d8 | 60 | Starting with version 2.26, it has been removed from glibc. |
73d8cece | 61 | .SS 1-arg cfree |
fea681da | 62 | In glibc, the function |
63aa9df0 | 63 | .BR cfree () |
fea681da MK |
64 | is a synonym for |
65 | .BR free (3), | |
66 | "added for compatibility with SunOS". | |
dd3568a1 | 67 | .PP |
fea681da MK |
68 | Other systems have other functions with this name. |
69 | The declaration is sometimes in | |
70 | .I <stdlib.h> | |
71 | and sometimes in | |
72 | .IR <malloc.h> . | |
73d8cece | 73 | .SS 3-arg cfree |
fea681da | 74 | Some SCO and Solaris versions have malloc libraries with a 3-argument |
63aa9df0 | 75 | .BR cfree (), |
fea681da MK |
76 | apparently as an analog to |
77 | .BR calloc (3). | |
dd3568a1 | 78 | .PP |
fea681da | 79 | If you need it while porting something, add |
ba39b288 | 80 | .PP |
088a639b | 81 | .in +4n |
ba39b288 | 82 | .EX |
fea681da | 83 | #define cfree(p, n, s) free((p)) |
ba39b288 | 84 | .EE |
fea681da | 85 | .in |
ba39b288 | 86 | .PP |
fea681da | 87 | to your file. |
dd3568a1 | 88 | .PP |
fea681da | 89 | A frequently asked question is "Can I use |
fb186734 | 90 | .BR free (3) |
fea681da | 91 | to free memory allocated with |
fb186734 | 92 | .BR calloc (3), |
fea681da | 93 | or do I need |
40725279 | 94 | .BR cfree ()?" |
fea681da | 95 | Answer: use |
fb186734 | 96 | .BR free (3). |
dd3568a1 | 97 | .PP |
fea681da | 98 | An SCO manual writes: "The cfree routine is provided for compliance |
c13182ef MK |
99 | to the iBCSe2 standard and simply calls free. |
100 | The num and size | |
fea681da | 101 | arguments to cfree are not used." |
47297adb | 102 | .SH RETURN VALUE |
fea681da | 103 | The SunOS version of |
63aa9df0 | 104 | .BR cfree () |
fea681da | 105 | (which is a synonym for |
fb186734 | 106 | .BR free (3)) |
fea681da MK |
107 | returns 1 on success and 0 on failure. |
108 | In case of error, | |
109 | .I errno | |
a9b4ebbc MK |
110 | is set to |
111 | .BR EINVAL : | |
112 | the value of | |
fea681da MK |
113 | .I ptr |
114 | was not a pointer to a block previously allocated by | |
c13182ef | 115 | one of the routines in the |
b5cc2ffb MK |
116 | .BR malloc (3) |
117 | family. | |
a2d7a55e MK |
118 | .SH VERSIONS |
119 | The | |
120 | .BR cfree () | |
121 | function was removed | |
122 | .\" commit 025b33ae84bb8f15b2748a1d8605dca453fce112 | |
123 | from glibc in version 2.26. | |
02db25c3 MS |
124 | .SH ATTRIBUTES |
125 | For an explanation of the terms used in this section, see | |
126 | .BR attributes (7). | |
127 | .TS | |
128 | allbox; | |
129 | lb lb lb | |
130 | l l l. | |
131 | Interface Attribute Value | |
132 | T{ | |
133 | .BR cfree () | |
134 | T} Thread safety MT-Safe /* In glibc */ | |
135 | .TE | |
47297adb | 136 | .SH CONFORMING TO |
fea681da | 137 | The 3-argument version of |
63aa9df0 | 138 | .BR cfree () |
fea681da MK |
139 | as used by SCO conforms to the iBCSe2 standard: |
140 | Intel386 Binary Compatibility Specification, Edition 2. | |
12960935 MK |
141 | .SH SEE ALSO |
142 | .BR malloc (3) |