Hitachi

OpenTP1 Version 7 分散トランザクション処理機能 OpenTP1 プログラム作成リファレンス C言語編


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で使う場合の注意事項』

  1. 『OpenTP1では,tprealloc()がリターンしたバッファは,0で再初期化されています。』

  2. 『OSI TP通信をするXATMIのエラーは,従来のTCP/IPとエラー動作が異なる場合があります。』