この章では、今回のリリースで新規に作成された ToolTalk 関数について説明します。これらの関数を使用するには、次のような ToolTalk ヘッダ・ファイルを組み込む必要があります。
#include <Tt/tt_c.h>
void tt_error(const char *funcname, Tt_status status)
tt_error() 関数は、一般的によく知られている NULL 関数です。この関数は、TT_OK 以外のステータスを持っている ToolTalk API 呼び出しから返される直前に ToolTalk ライブラリによって呼び出されます。返されようとしている関数名とステータス・コードが渡されます。この呼び出しを使って、tt_error() にデバッガのブレークポイントを設定し、ToolTalk エラーをすばやくキャッチして追跡できます。また、たとえば stderr に ToolTalk エラーのログを取るために、この関数を割り込み処理することもできます。次のコード・サンプルは、アプリケーションが上記の動作を行う方法を示しています。
void tt_error(const char *funcname, Tt_status status) { fprintf(stderr, "ToolTalk function %s returned %s.¥n", funcname, tt_status_message(status)); }
char * tt_file_netfile( const char * filename );
tt_file_netfile() 関数は、ローカル・パス名と正規のパス名とを対応づけます。filename で指定したファイルを、ネットワーク上の他のホストに渡すことができる netfilename に変換します。filename は、ローカル・ホストで有効な絶対パス名または相対パス名です。filename の最後のコンポーネントは必須ではありませんが、filename のその他の各コンポーネントは必ず存在しなければなりません。
この関数を使用する前に tt_open 関数を呼び出す必要はありません。
この関数は、エラー・ポインタを返すか、正常終了した場合は未指定の書式の新たに割り当てられた NULL で終了する文字列を返します。この文字列は tt_netfile_file 関数に渡されます。
エラー・ポインタからステータスを取り出すには、tt_ptr_error を使用します。返される可能性のあるエラーを表 C-1 に示します。
表 C-1 tt_file_netfile が返す可能性のあるエラー
エラー |
説明 |
---|---|
filename はこのホスト上では有効でないパスです。 |
|
rpc.ttdbserverd はホストに適切にインストールされていない可能性があります。 |
割り当てられた文字列を解除するには、tt_free または tt_release 呼び出しを使用します。
ファイル名を同じファイルのローカル・ファイル名に戻すには、tt_netfile_file 関数を使用します。
char * tt_host_file_netfile( const char * host, const char * filename );
tt_host_file_netfile() 関数は、リモート・ホスト上のローカル・パス名と正規のパス名とを対応づけます。host で指定したファイルを、ネットワーク上の他のホストに渡すことができる netfilename に変換します。filename は、リモート・ホストで有効な絶対パス名または相対パス名です。filename の最後のコンポーネントは必須ではありませんが、その他の各コンポーネントは必ず存在しなければなりません。
この関数を使用する前に tt_open 関数を呼び出す必要はありません。
この関数は、エラー・ポインタを返すか、正常終了した場合は未指定の書式の新たに割り当てられた NULL で終了する文字列を返します。この文字列は tt_netfile_file 関数に渡されます。
エラー・ポインタからステータスを取り出すには、tt_ptr_error を使用します。返される可能性のあるエラーを表 C-2 に示します。
表 C-2 tt_host_file_netfile が返す可能性のあるエラー
エラー |
説明 |
---|---|
filename はリモート・ホスト上では有効でないパスです。 |
|
ホスト上の rpc.ttdbserverd に到達できませんでした。 |
|
rpc.ttdbserverd はホストに適切にインストールされていない可能性があります。 |
|
rpc.ttdbserverd バージョンは、tt_host_file_netfile() 関数をサポートしていません。 |
ファイル名を同じファイルのローカル・ファイル名に戻すには、tt_host_netfile_file() 関数を使用します。
char * tt_host_netfile_file( const char * host, const char * netfilename );
tt_host_file_netfile() 関数は、リモート・ホスト上のローカル・パス名と正規のパス名とを対応づけます。netfilename で指定したファイルを、リモート・ホスト上で有効なパス名に変換します。netfilename は、tt_netfile_file 関数によって返される NULL で終了する文字列のコピーです。
この関数を使用する前に tt_open 関数を呼び出す必要はありません。
指定されたファイルが現在ローカル・ホストにマウントされていない場合、次のような書式のパス名が作成されます。
/DTMOUNTPOINT/host/filepath
DTMOUNTPOINT は、オートマウントのホスト・マップのために作成されたマウント・ポイントです。環境変数 DTMOUNTPOINT で、このマウント・ポイントを指定することもできます。
filepath は、ホストに格納されているファイルに対するパスです。
この関数は、エラー・ポインタを返すか、正常終了した場合は新たに割り当てられた NULL で終了するローカル・ファイル名を返します。
エラー・ポインタからステータスを取り出すには、tt_ptr_error を使用します。返される可能性のあるエラーを表 C-3 に示します。
表 C-3 tt_host_netfile_file が返す可能性のあるエラー
エラー |
説明 |
---|---|
netfilename は有効なネットファイル名ではありません。 |
|
ホスト上の rpc.ttdbserverd に到達できませんでした。 |
|
rpc.ttdbserverd はホストに適切にインストールされていない可能性があります。 |
|
rpc.ttdbserverd バージョンは、tt_host_netfile_file() 関数をサポートしていません。 |
割り当てられた文字列を解除するには、tt_free または tt_release 呼び出しを使用します。
ファイル名を同じファイルのローカル・ファイル名に戻すには、tt_host_file_netfile() 関数を使用します。
char * tt_message_print(Tt_message m);
tt_message_print 関数により、理解しないまま受信したメッセージを出力できます。
割り当てられた文字列を解除するには、tt_free または tt_release 呼び出しを使用します。
この関数は、エラー TT_ERR_POINTER を返すか、正常終了した場合は (tt_X_session などの他の ToolTalk API 呼び出しで行われているのと同様の方法で) ToolTalk によって割り当てられたバッファにあるメッセージ m を返します。
char * tt_netfile_file( const char * netfilename );
tt_netfile_file 関数は、ローカル・パス名と正規のパス名とを対応づけます。netfilename で指定したファイルを、ローカル・ホスト上で有効なパス名に変換します。netfilename は、tt_netfile_file 関数によって返される NULL で終了する文字列のコピーです。
この関数を使用する前に tt_open 関数を呼び出す必要はありません。
指定されたファイルが現在ローカル・ホストにマウントされていない場合、次のような形式のパス名が作成されます。
/DTMOUNTPOINT/host/filepath
DTMOUNTPOINT は、オートマウントのホスト・マップのために作成されたマウント・ポイントです。環境変数 DTMOUNTPOINT でこのマウント・ポイントを指定することもできます。
filepath は、ホストに格納されているファイルに対するパスです。
この関数は、エラー・ポインタを返すか、正常終了した場合は新たに割り当てられた NULL で終了するローカル・ファイル名を返します。
エラー・ポインタからステータスを取り出すには、tt_ptr_error を使用します。返される可能性のあるエラーを表 C-4 に示します。
表 C-4 tt_netfile_file が返す可能性のあるエラー
エラー |
説明 |
---|---|
netfilename は有効なネットファイル名ではありません。 |
|
ホスト上の rpc.ttdbserverd に到達できませんでした。 |
|
rpc.ttdbserverd はホストに適切にインストールされていない可能性があります。 |
割り当てられた文字列を解除するには、tt_free または tt_release 呼び出しを使用します。
ファイル名を同じファイルのネット・ファイル名に戻すには、tt_file_netfile() 関数を使用します。
char * tt_message_print(Tt_pattern p);
tt_pattern_print() 関数により、パターンを出力できます。
割り当てられた文字列を解除するには、tt_free または tt_release 呼び出しを使用します。
この関数は、エラー TT_ERR_POINTER を返すか、正常終了した場合は (tt_X_session などの他の ToolTalk API 呼び出しで行われているのと同様の方法で) ToolTalk によって割り当てられたバッファにあるパターン p を返します。