CFREE - Linux手册页

时间:2019-08-20 18:00:00  来源:igfitidea点击:

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)。

InterfaceAttributeValue
cfree()Thread safetyMT-Safe /* In glibc */

遵循规范

SCO使用的3参数版本的cfree()符合iBCSe2标准:Intel386二进制兼容性规范,版本2。

另外参见

malloc(3)

出版信息

这个页面是Linux手册页项目5.08版的一部分。有关项目的说明、有关报告错误的信息以及此页面的最新版本,请访问https://www.kernel.org/doc/man-pages/