6.2.2 例: 応答バッファのサイズ変更の確認

次のリストは、tpcall()を呼び出した後、アプリケーションでバッファのサイズが変更されたかどうかを確認する一般的な方法を示しています。この例では、入力バッファと出力バッファは同じサイズである必要があります。

応答バッファのサイズ変更の確認のリスト

char *svc, *idata, *odata;
long ilen, olen, bef_len, aft_len;
. . .
if (idata = tpalloc("STRING", NULL, 0) == NULL)
    error
if (odata = tpalloc("STRING", NULL, 0) == NULL)
    error

place string value into idata buffer

ilen = olen = strlen(idata)+1;
. . .
bef_len = olen;
if (tpcall(svc, idata, ilen, &odata, &olen, flags) == -1)
   error

aft_len = olen;

if (aft_len > bef_len){ /* message buffer has grown */

    if (idata = tprealloc(idata, olen) == NULL)
       error

}