ToolTalk ユーザーズガイド

返されたポインタの状態

ポインタを返す ToolTalk 関数の実行中にエラーが発生すると、ToolTalk サービスは、正しい Tt_status コードを示す ToolTalk API ライブラリ内のアドレスを与えます。ポインタが有効かどうかを確認するには、ToolTalk マクロの tt_ptr_error を使用できます。ポインタがエラー値の場合は、tt_status_message を使用して Tt_status 文字列を取得できます。

例 14–2 では、エラー値が発見された場合、ポインタを確認し、Tt_status 文字列を検索して出力します。


例 14–2 返されたポインタ状態の検索

char *old_spec_id, new_file, new_spec_id, my_application_name;
Tt_status tterr;

new_spec_id = tt_spec_move(old_spec_id, new_file);
tterr = tt_ptr_error(new_spec_id);
switch (tterr) {
    case TT_OK:
	/*
	 * Replace old_spec_id with new_spec_id in my internal
	 * data structures.
	 */
	update_my_spec_ids(old_spec_id, new_spec_id);
	break;
    case TT_WRN_SAME_OBJID:
	/*
	 * The spec must have stayed in the same filesystem,
	 * since ToolTalk is reusing the spec id. Do nothing.
	 */
	break;
    case TT_ERR_FILE:
    case TT_ERR_ACCESS:
    default:
	fprintf(stderr, “%s: %s\n”, my_application_name,
		tt_status_message(tterr));
	break;
}