tprealloc
名称
型付きバッファのサイズの変更
形式
ANSI C,C++形式
#include <xatmi.h>
char *tprealloc(char *ptr,long size)
K&R版 Cの形式
#include <xatmi.h>
char *tprealloc(ptr,size)
char *ptr;
long size;
機能
関数tprealloc()は,引数ptrで指すバッファのサイズをsizeで示すバイト長に変更して,新しい(移動したと思われる)バッファへのポインタをリターンします。割り当てられたバッファが少なくともsize分の大きさであるのは,tpalloc()と同様です。バッファのtypeは,サイズ変更後も同じtypeを変わらないで保持します。この関数が正常にリターンしたあとは,バッファはリターンされたポインタで参照してください。ptrは使わないでください。古いサイズと新しいサイズのうち,小さい方の部分まではバッファの内容が変化しません。
バッファ型によっては,使う前に初期化が必要なものがあります。そのためtprealloc()は,バッファが割り当てられてからリターンするまでの間に,バッファの初期化をします(その方法は,コミュニケーションリソースマネジャで規定)。
『引数』
『●ptr
バッファへのポインタを設定します。』
『●size
バッファの再割り当て後のサイズを設定します。』
リターン値
成功した場合,tprealloc()はlongワードに位置合わせした,適切な形式のバッファへのポインタをリターンします。エラー時には,NULLをリターンして,tperrnoにエラーの状態を示す値を設定します。
エラー
次のような場合,tprealloc()はエラーリターンして,次のうちどれか一つの値をtperrnoに設定します。
リターン値 | リターン値(数値) | 意味 |
---|---|---|
TPEINVAL | 4 | 間違った引数が与えられました(例えば,ptrがtpalloc()で割り当てたバッファへのポインタではない)。 |
TPEOS | 7 | オペレーティングシステムにエラーが起こりました。厳密なエラーの性質は,product-specificな方法で定義されます。 |
TPEPROTO | 9 | tprealloc()が間違った状況で呼ばれました。 |
TPESYSTEM | 12 | コミュニケーションリソースマネジャシステムでエラーが起こりました。厳密なエラーの性質は,product-specificな方法で定義されます。 |
アプリケーションの使い方
バッファの再初期化処理が失敗すると,tprealloc()は失敗してNULLをリターンします。ptrで指すバッファの内容は有効な値ではなくなります。
この関数は,Cライブラリのmalloc(),realloc(),free()と一緒には使わないでください(例えば,tprealloc()で割り当てたバッファは,free()で解放しないでください)。
関連項目
tpalloc(),tpfree(),tptypes()
『OpenTP1で使う場合の注意事項』