BEA Logo BEA Tuxedo Release 8.0

  BEA ホーム  |  イベント  |  ソリューション  |  パートナ  |  製品  |  サービス  |  ダウンロード  |  ディベロッパ・センタ  |  WebSUPPORT

 

   Tuxedoホーム   |   BEA Tuxedo C リファレンス   |   先頭へ   |   前へ   |   次へ   |   目次

 


tpfree(3c)

名前

tpfree()-型付きバッファの解放を行うルーチン

形式

#include <atmi.h>
void tpfree(char *ptr)

機能説明

tpfree() の引数は、以前に tpalloc() または tprealloc() によって得られたバッファを指すポインタです。ptr が NULL の場合は、動作は行われません。ptr が型付きバッファを指していない場合 (または、その前に tpfree() を使用して解放した領域を指している場合)、不定の結果が発生します。サービス・ルーチン内では、ptr がサービス・ルーチンに渡されたバッファを指している場合、tpfree() は単に終了し、そのバッファを解放しません。

ある種のバッファ・タイプは、バッファの解放処理の一環として、状態情報あるいは関連するデータを削除する必要があります。tpfree() は、バッファを解放する前にこうした関連情報を (通信マネージャ固有の方法に従って) 削除します。

tpfree() が終了した後は、ptr を BEA Tuxedo ATMI システムのルーチンの引数として使用したり、その他の方法で使用したりしないようにしてください。

マルチスレッドのアプリケーション中のスレッドは、TPINVALIDCONTEXT を含め、どのコンテキスト状態で実行していても、tpfree() の呼び出しを発行できます。

tpfree() を使用して FML32 バッファを解放するとき、ルーチンは埋め込まれたバッファをすべて再帰的に解放して、メモリ・リークの発生を防ぎます。埋め込まれたバッファが解放されないようにするには、対応するポインタにヌルを指定してから tpfree() コマンドを発行します。上記で説明したように、ptr がヌルの場合アクションは発生しません。

戻り値

tpfree() は、呼び出し側に値を返しません。したがって、この関数は、void で宣言されています。

使用法

この関数を、C ライブラリの malloc()realloc()、または free() と組み合わせて使用するのは避けてください (tpalloc() で割り当てたバッファを、free() を使用して解放しないでください)。

関連項目

「C 言語アプリケーション・トランザクション・モニタ・インターフェイスについて」tpalloc(3c)tprealloc(3c)

 

先頭へ戻る 前のトピックへ 次のトピックへ