CFREE - Linux手册页
Linux程序员手册 第3部分
更新日期: 2017-09-15
名称
cfree-释放的已分配内存
语法
#include <stdlib.h> /* In SunOS 4 */ int cfree(void *ptr); /* In glibc or FreeBSD libcompat */ void cfree(void *ptr); /* In SCO OpenServer */ void cfree(char *ptr, unsigned num, unsigned size); /* In Solaris watchmalloc.so.1 */ void cfree(void *ptr, size_t nelem, size_t elsize);
glibc的功能测试宏要求(请参阅feature_test_macros(7)):
cfree():
从glibc 2.19开始:
_DEFAULT_SOURCE
Glibc 2.19及更早版本:
_BSD_SOURCE _SVID_SOURCE
说明
永远不要使用此功能。使用free(3)代替。从2.26版开始,已将其从glibc中删除。
1-arg cfree
在glibc中,函数cfree()是free(3)的同义词,"为了与SunOS兼容而添加"。
其他系统使用此名称具有其他功能。该声明有时在中,有时在中。
3-arg cfree
某些SCO和Solaris版本具有带有3个参数cfree()的malloc库,这显然类似于calloc(3)。
如果在移植时需要它,请添加
#define cfree(p, n, s) free((p))
到您的文件。
一个常见的问题是"我可以使用free(3)释放用calloc(3)分配的内存,还是我需要cfree()?答案:请使用free(3)。
SCO手册中写道:"提供了cfree例程以符合iBCSe2标准,并且仅调用free。不使用cfree的num和size参数。"
返回值
SunOS的cfree()版本(是free(3)的同义词)成功时返回1,失败时返回0。如果发生错误,则将errno设置为EINVAL:ptr的值不是指向先前由malloc(3)系列例程之一分配的块的指针。
版本
cfree()函数已从2.26版的glibc中删除。
属性
有关本节中使用的术语的说明,请参见attribute(7)。
Interface | Attribute | Value |
cfree() | Thread safety | MT-Safe /* In glibc */ |
遵循规范
SCO使用的3参数版本的cfree()符合iBCSe2标准:Intel386二进制兼容性规范,版本2。
另外参见
malloc(3)
出版信息
这个页面是Linux手册页项目5.08版的一部分。有关项目的说明、有关报告错误的信息以及此页面的最新版本,请访问https://www.kernel.org/doc/man-pages/。