|
|
tprealloc(3c)
名前
tprealloc()-型付きバッファのサイズを変更するルーチン
形式
#include <atmi.h>
char * tprealloc(char *ptr, long size)
機能説明
tprealloc() は、ptr が指すバッファのサイズを size バイトに変更し、新しい (おそらく移動した) バッファを指すポインタを返します。tpalloc() と同様、割り当てるバッファは少なくとも size および dfltsize と同じ大きさになります。ここで、dfltsize は特定のバッファ・タイプの tmtype_sw に指定されたデフォルトのバッファ・サイズです。この 2 つの値の大きい方のサイズが 0 またはそれ以下であると、このバッファは変更されず、NULL が返されます。バッファのタイプは再割り当て後も同じままです。この関数が正常に終了した場合、返されたポインタは、バッファを参照するために使用します。以後、バッファの参照に ptr を使用しないようにしてください。バッファの内容は新しいサイズと古いサイズで短い方の長さまでは変更されません。
ある種のバッファ・タイプは、使用する前に初期化を行っておく必要があります。tprealloc() は、バッファを再割り当てした後、(通信マネージャ固有の方法で) バッファを再度初期化します。このため、呼び出し元から返されるバッファはすぐに使用できます。
マルチスレッドのアプリケーション中のスレッドは、TPINVALIDCONTEXT を含め、どのコンテキスト状態で実行していても、tprealloc() の呼び出しを発行できます。
戻り値
tprealloc() は正常終了すると、long ワードに境界を合わせた、適切なタイプのバッファへのポインタを返します。
異常終了すると、tprealloc() はヌルを返し、tperrno() を設定してエラー条件を示します。
エラー
再初期化関数が正常に実行できなかった場合、tprealloc() は異常終了して NULL を返し、ptr が指すバッファの内容は無効になってしまう可能性があります。異常終了時には、tprealloc() は tperrno() を次のいずれかの値に設定します。
使用法
バッファの再初期化が正常に実行できなかった場合、tprealloc() は異常終了して、NULL を返し、ptr が指すバッファの内容は無効になってしまう可能性があります。この関数は、C ライブラリの malloc()、realloc()、または free() とともに使用することはできません (たとえば、tprealloc() で割り当てたバッファは free() で解放することはできません)。
関連項目
tpalloc(3c)、 tpfree(3c)、 tptypes(3c)
|
Copyright © 2001 BEA Systems, Inc. All rights reserved.
|