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()は,バッファが割り当てられてからリターンするまでの間に,バッファの初期化をします(その方法は,コミュニケーションリソースマネジャで規定)。
Note:このようにして,使える状態になってから,バッファは呼び出し側にリターンされます。バッファの初期化処理が規定されていない場合は,tprealloc()はバッファを0に初期化しません。
『引数』
『●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で使う場合の注意事項』
-
『OpenTP1では,tprealloc()がリターンしたバッファは,0で再初期化されています。』
-
『OSI TP通信をするXATMIのエラーは,従来のTCP/IPとエラー動作が異なる場合があります。』