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
}
親トピック: 同期メッセージの送信