Provided by: manpages-ja-dev_0.5.0.0.20210215+dfsg-1_all
名前
cfree - 割り当てられたメモリーを解放する
書式
#include <stdlib.h> /* SunOS 4 では */ int cfree(void *ptr); /* glibc と FreeBSD libcompat では */ void cfree(void *ptr); /* SCO OpenServer では */ void cfree(char *ptr, unsigned num, unsigned size); /* Solaris watchmalloc.so.1 では */ void cfree(void *ptr, size_t nelem, size_t elsize); glibc 向けの機能検査マクロの要件 (feature_test_macros(7) 参照): cfree(): _BSD_SOURCE || _SVID_SOURCE
説明
この関数は決して使用すべきではない。 代わりに free(3) を使うこと。 引き数が 1 つの cfree glibc では、関数 cfree() は free(3) の別名であり、「SunOS との互換性のために追加され た」。 他のシステムでは、この名前の別の関数がある。 この宣言は <stdlib.h> に存在する場合もある し、 <malloc.h> に存在する場合もある。 引き数が 3 つの cfree SCO と Solaris のいくつかのバージョンでは、 引き数が 3 つの cfree() が含まれる malloc ラ イブラリがある。 これは明らかに calloc(3) に類似している。 何かを移植する時にこの関数が必要な場合、 #define cfree(p, n, s) free((p)) をファイルに追加すること。 よく尋ねられる質問は 「calloc(3) で割り当てられたメモリーを解放するのに free(3) を使うこ とができるか、 それとも cfree() を使う必要があるか」というものである。 答え: free(3) を 使うこと。 SCO のマニュアルには以下のように記述されている: 「cfree ルーチンは iBCSe2 規格に従うために 提供されており、 単に free を呼んでいるだけである。 cfree の num と size 引き数は使用され ない。」
返り値
SunOS 版の cfree() (free(3) の別名) は、成功した場合に 1 を返し、失敗した場合に 0 を返 す。 エラーの場合、 errno が EINVAL に設定される: ptr の値が malloc() 系のルーチンの 1 つ で以前に割り当てられた ブロックへのポインターでない。
準拠
SCO で用いられている引き数が 3 つの cfree() は、iBCSe2 規格: Intel386 Binary Compatibility Specification, Edition 2 (Intel386 バイナリ互換仕様、第 2 版) に準拠する。
関連項目
malloc(3)
この文書について
この man ページは Linux man-pages プロジェクトのリリース 3.79 の一部 である。プロジェクト の説明とバグ報告に関する情報は http://www.kernel.org/doc/man-pages/ に書かれている。 2007-07-26 CFREE(3)