Manpages

名 前

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 を 返 す 。 エ ラ ー の 場 合 、 errnoEINVAL に 設 定 さ れ る : 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/ に 書 か れ て い る 。