![]() |
![]() |
|
|
Ffree、Ffree32(3fml)
名前
Ffree()、Ffree32() - フィールド化バッファ用に割り当てられた領域の解放
形式
#include <stdio.h>
#include "fml.h"
int
Ffree(FBFR *fbfr)
#include "fml32.h"
int
Ffree32(FBFR32 *fbfr)
機能説明
Ffree() は、その引数であるフィールド化バッファ用に割り当てられた領域を取り戻します。fbfr は、フィールド化バッファを指すポインタです。フィールド化バッファは、無効になります。すなわち、非フィールド化となり、解放されます。Ffree32() は、FLD_PTR フィールドのポインタによって参照されるメモリ領域を解放しません。
Ffree() は、(UNIX システムのリファレンス・ページの) free()よりも有効です。Ffree() は、フィールド化バッファを無効にしますが、free() は無効にしません。フィールド化バッファを無効にすることは重要です。それは、(UNIX システムのリファレンス・ページの) malloc() が、解放されたメモリをクリアせずに再使用するためです。このため、free() が使用されると、malloc() は、有効なフィールド化バッファのようであるが実際はそうではないメモリを返す恐れがあります。
Ffree32() は 32 ビット FML で使用されます。
マルチスレッドのアプリケーション内のスレッドは、TPINVALIDCONTEXT を含め、どのようなコンテキスト状態で実行している場合でも、Ffree() または Ffree32() を呼び出すことができます。
戻り値
この関数は、エラー発生時に -1 を返し、Ferror を設定してエラー条件を示します。
エラー
次の条件の場合、Ffree() は異常終了し、Ferror を次の値に設定します。
バッファが適切なバウンダリで開始していません。
バッファがフィールド化されていないか、または Finit() で初期化されていません。
関連項目
「FML 関数の紹介」、Falloc、Falloc32(3fml)、Frealloc、Frealloc32(3fml)
UNIX システムのリファレンス・ページの free(3)、malloc(3)
![]() |
![]() |
![]() |
|
Copyright © 2001 BEA Systems, Inc. All rights reserved.
|