4.8.1 tpalloc − 型付きバッファの割り当て
- 〈この項の構成〉
(1) 形式
(a) TP1/Client/Wの場合
#include <dcvxatmi.h> char *tpalloc(char *type, char *subtype, DCLONG size)
(b) TP1/Client/Pの場合
#include <dcvxatmi.h> char CLTFAR *tpalloc(char CLTFAR *type, char CLTFAR *subtype, DCLONG size)
(2) 機能
型付きのバッファを割り当てます。
バッファの型によっては,使用する前に初期化が必要なものがあります。tpalloc関数は,バッファが割り当てられてからリターンするまでの間に,バッファを初期化します。関数を呼び出せる状態になってから,バッファはtpalloc関数を呼び出した側にリターンされます。
初期化の方法は,TP1/ClientおよびTP1/Server Baseのコミュニケーションリソースマネジャ(CRM)で定義します。定義されていない場合,tpalloc関数はバッファを初期化しません。
初期化が正常に完了した場合,tpalloc関数は,longワードに位置合わせした適切な形式のバッファへのポインタをリターンします。エラー時には,NULLをリターンし,リターン値としてエラー情報が返されます。初期化が失敗すると,割り当てられたバッファは解放され,NULLをリターンします。
(3) UAPで値を設定する引数
-
type
バッファの型(タイプ)を指定します。
X_OCTETを指定してください。
-
subtype
バッファのサブタイプを指定します。
NULLを指定してください。
-
size
割り当てるバッファのサイズを指定します。
(4) リターン値
正常に完了した場合,tpalloc関数は,longワードに位置合わせした適切な形式のバッファへのポインタをリターンします。エラー時には,NULLをリターンし,リターン値としてエラー情報を示す次のどれか一つの値を,tperrnoに設定します。
リターン値 |
意味 |
---|---|
TPEINVAL |
引数に誤りがあります。 |
TPENOENT |
引数に指定された値は,システムで定義されていません。 |
TPEPROTO |
tpalloc関数を呼び出すときの状態が適切ではありません。 |
TPESYSTEM |
コミュニケーションリソースマネジャでエラーが発生しました。 |
TPEOS |
オペレーティングシステムでエラーが発生しました。 |
(5) 注意事項
-
tpalloc関数は,C言語のmalloc関数,realloc関数,free関数と一緒に使用できません。
例:tpalloc関数で割り当てたバッファをfree関数で解放する など
上記の関数を一緒に使用した場合,システムの動作は保証できません。
-
tpalloc関数がリターンしたバッファは,0で初期化されています。
-
バッファの領域はグローバルヒープから取得します。
-
リターン値としてTPESYSTEMが返されたとき,TP1/Clientで発生した障害の場合は,エラー情報がエラーログに出力されます。
-
リターン値としてTPEOSが返されたとき,メモリ不足が原因の場合があります。TP1/Clientで発生した障害の場合,エラー情報がエラーログに出力されます。