XGetErrorText(display, code, buffer_return, length)
Display *display;
int code;
char *buffer_return;
int length;
char *XDisplayName(string)
char *string;
int (*XSetIOErrorHandler(handler))()
int (*handler)(Display *);
XGetErrorDatabaseText(display, name, message, default_string, buffer_return, length)
Display *display;
char *name, *message;
char *default_string;
char *buffer_return;
int length;
XGetErrorText は指定したエラーコードを説明する NULL で終わる文字列を指定したバッファ にコピーする。 返される文字列は、現在のロケールのエンコーディングになっている。 Xlib の拡張によりエラーコードやエラー文字列が定義されるかもしれないの で、エラーの説明を得るためにはこの関数を使うことが推奨されている。
関数 XDisplayName は XOpenDisplay が使おうとするディスプレイの名前を返す。 NULL 文字列が指定された場合には XDisplayName はディスプレイについての環境変数を調べ、 XOpenDisplay が使おうとするディスプレイの名前を返す。 この関数により、最初の接続の試みが失敗した時に、プログラムがどのディス プレイを開こうとしていたのかをユーザに簡単に知らせることができる。
XSetIOErrorHandler は致命的な I/O エラーのハンドラを設定する。 Xlib はシステムコールのエラー(例えば、サーバへの接続が失われた)が発生 した場合に、ユーザが与えたエラーハンドラを呼び出す。 これは致命的な状態と考えられるので、呼び出されたルーチンからは復帰すべ きではない。 エラーハンドラから復帰をした場合でも、クライアントプロセスは終了する。
先に挙げたエラーハンドラは復帰することに注意せよ。
関数 XGetErrorDatabaseText は、エラーメッセージのデータベースより NULL で終わるメッセージ(あるい はデフォルトのメッセージ)を返す。 引き数 default_string 内のテキストは現在のロケールのエンコーディングであ り、buffer_return 引き数に格納されるテキストも現在のロケールのエンコーディ ングであると想定される。
引き数 name は一般的にアプリケーションの名前である。 引き数 message では必要なメッセージのタイプを示すべきである。 name と message のエンコーディングがホストポータブル文字エンコーディン グでない場合、実行結果は実装依存である。 Xlib はエラーを報告するために3つの予め定義された``アプリケーション名'' を使用する。 これらの名前については、大文字と小文字は区別される。