]> git.ipfire.org Git - thirdparty/man-pages.git/blob - man3/cfree.3
err.3: EXAMPLES: use EXIT_FAILURE rather than 1 as exit status
[thirdparty/man-pages.git] / man3 / cfree.3
1 .\" Copyright (c) 2003 Andries Brouwer (aeb@cwi.nl)
2 .\"
3 .\" %%%LICENSE_START(GPLv2+_DOC_FULL)
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
20 .\" License along with this manual; if not, see
21 .\" <http://www.gnu.org/licenses/>.
22 .\" %%%LICENSE_END
23 .\"
24 .TH CFREE 3 2017-09-15 "" "Linux Programmer's Manual"
25 .SH NAME
26 cfree \- free allocated memory
27 .SH SYNOPSIS
28 .nf
29 .PP
30 .B "#include <stdlib.h>"
31 .PP
32 /* In SunOS 4 */
33 .BI "int cfree(void *" ptr );
34 .PP
35 /* In glibc or FreeBSD libcompat */
36 .BI "void cfree(void *" ptr );
37 .PP
38 /* In SCO OpenServer */
39 .BI "void cfree(char *" ptr ", unsigned " num ", unsigned " size );
40 .PP
41 /* In Solaris watchmalloc.so.1 */
42 .BI "void cfree(void *" ptr ", size_t " nelem ", size_t " elsize );
43 .fi
44 .PP
45 .in -4n
46 Feature Test Macro Requirements for glibc (see
47 .BR feature_test_macros (7)):
48 .in
49 .PP
50 .BR cfree ():
51 Since glibc 2.19:
52 _DEFAULT_SOURCE
53 Glibc 2.19 and earlier:
54 _BSD_SOURCE || _SVID_SOURCE
55 .SH DESCRIPTION
56 This function should never be used.
57 Use
58 .BR free (3)
59 instead.
60 Starting with version 2.26, it has been removed from glibc.
61 .SS 1-arg cfree
62 In glibc, the function
63 .BR cfree ()
64 is a synonym for
65 .BR free (3),
66 "added for compatibility with SunOS".
67 .PP
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> .
73 .SS 3-arg cfree
74 Some SCO and Solaris versions have malloc libraries with a 3-argument
75 .BR cfree (),
76 apparently as an analog to
77 .BR calloc (3).
78 .PP
79 If you need it while porting something, add
80 .PP
81 .in +4n
82 .EX
83 #define cfree(p, n, s) free((p))
84 .EE
85 .in
86 .PP
87 to your file.
88 .PP
89 A frequently asked question is "Can I use
90 .BR free (3)
91 to free memory allocated with
92 .BR calloc (3),
93 or do I need
94 .BR cfree ()?"
95 Answer: use
96 .BR free (3).
97 .PP
98 An SCO manual writes: "The cfree routine is provided for compliance
99 to the iBCSe2 standard and simply calls free.
100 The num and size
101 arguments to cfree are not used."
102 .SH RETURN VALUE
103 The SunOS version of
104 .BR cfree ()
105 (which is a synonym for
106 .BR free (3))
107 returns 1 on success and 0 on failure.
108 In case of error,
109 .I errno
110 is set to
111 .BR EINVAL :
112 the value of
113 .I ptr
114 was not a pointer to a block previously allocated by
115 one of the routines in the
116 .BR malloc (3)
117 family.
118 .SH VERSIONS
119 The
120 .BR cfree ()
121 function was removed
122 .\" commit 025b33ae84bb8f15b2748a1d8605dca453fce112
123 from glibc in version 2.26.
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
136 .SH CONFORMING TO
137 The 3-argument version of
138 .BR cfree ()
139 as used by SCO conforms to the iBCSe2 standard:
140 Intel386 Binary Compatibility Specification, Edition 2.
141 .SH SEE ALSO
142 .BR malloc (3)