CFREE

Section: Linux Programmer's Manual (3)
Updated: 2017-09-15
Index JM Home Page roff page
 

名前

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():
    Since glibc 2.19:
        _DEFAULT_SOURCE
    Glibc 2.19 and earlier:
        _BSD_SOURCE || _SVID_SOURCE  

説明

この関数は決して使用すべきではない。 代わりに free(3) を使うこと。 glibc 2.26 以降では、この関数は glibc から削除されている。  

引数が 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 を返す。 エラーの場合、 errnoEINVAL に設定される: ptr の値が malloc() 系のルーチンの 1 つで以前に割り当てられた ブロックへのポインターでない。  

バージョン

cfree() 関数は、バージョン 2.26 で glibc から削除された。  

属性

この節で使用されている用語の説明については、 attributes(7) を参照。
インターフェース属性
cfree() Thread safetyMT-Safe /* glibc では */
 

準拠

SCO で用いられている引数が 3 つの cfree() は、iBCSe2 規格: Intel386 Binary Compatibility Specification, Edition 2 (Intel386 バイナリ互換仕様、第 2 版) に準拠する。  

関連項目

malloc(3)  

この文書について

この man ページは Linux man-pages プロジェクトのリリース 5.10 の一部である。プロジェクトの説明とバグ報告に関する情報は https://www.kernel.org/doc/man-pages/ に書かれている。


 

Index

名前
書式
説明
引数が 1 つの cfree
引数が 3 つの cfree
返り値
バージョン
属性
準拠
関連項目
この文書について

This document was created by man2html, using the manual pages.
Time: 16:46:40 GMT, November 24, 2023