XSetErrorHandler

Section: XLIB FUNCTIONS (3X11)
Updated: Release 6.3
Index xjman/web INDEX
 

名前

XSetErrorHandler, XGetErrorText, XDisplayName, XSetIOErrorHandler, XGetErrorDatabaseText - デフォルトのエラーハンドラ  

書式

int (*XSetErrorHandler(handler))()

      int (*handler)(Display *, XErrorEvent *)

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;  

引き数

buffer_return
エラー記述が返される。
code
エラー記述を得ようとするエラーコードを指定。
default_string
データベースで none になっている場合のデフォルトのエラーメッセージを指 定。
display
X サーバへの接続を指定。
handler
プログラムで与えるエラーハンドラを指定。
length
バッファのサイズを指定。
message
エラーメッセージのタイプを指定。
name
アプリケーションの名前を指定。
string
文字列を指定。
 

説明

一般的に Xlib は、エラーを受け取ったときは必ずプログラムが与えたエラー ハンドラを呼び出す。 ただし、 OpenFont, LookupColor, AllocNamedColor プロトコルリクエストからの BadName エラーや プロトコルリクエストからの BadFont エラーに対してはエラーハンドラの呼び出しは行われない。 一般的にはこれらのエラーは、手続きインタフェースを通してプログラムに返 される。 この状態は致命的ではないと考えられるので、エラーハンドラから復帰するこ とは認められる。返り値は無視される。 しかし、エラーハンドラはディスプレイに対してプロトコルリクエストを生成 したり入力イベントを求めたりする関数を(直接にも間接にも)呼び出してはな らない。 このような場合、前のエラーハンドラから復帰する。

XGetErrorText は指定したエラーコードを説明する NULL で終わる文字列を指定したバッファ にコピーする。 返される文字列は、現在のロケールのエンコーディングになっている。 Xlib の拡張によりエラーコードやエラー文字列が定義されるかもしれないの で、エラーの説明を得るためにはこの関数を使うことが推奨されている。

関数 XDisplayNameXOpenDisplay が使おうとするディスプレイの名前を返す。 NULL 文字列が指定された場合には XDisplayName はディスプレイについての環境変数を調べ、 XOpenDisplay が使おうとするディスプレイの名前を返す。 この関数により、最初の接続の試みが失敗した時に、プログラムがどのディス プレイを開こうとしていたのかをユーザに簡単に知らせることができる。

XSetIOErrorHandler は致命的な I/O エラーのハンドラを設定する。 Xlib はシステムコールのエラー(例えば、サーバへの接続が失われた)が発生 した場合に、ユーザが与えたエラーハンドラを呼び出す。 これは致命的な状態と考えられるので、呼び出されたルーチンからは復帰すべ きではない。 エラーハンドラから復帰をした場合でも、クライアントプロセスは終了する。

先に挙げたエラーハンドラは復帰することに注意せよ。

関数 XGetErrorDatabaseText は、エラーメッセージのデータベースより NULL で終わるメッセージ(あるい はデフォルトのメッセージ)を返す。 引き数 default_string 内のテキストは現在のロケールのエンコーディングであ り、buffer_return 引き数に格納されるテキストも現在のロケールのエンコーディ ングであると想定される。

引き数 name は一般的にアプリケーションの名前である。 引き数 message では必要なメッセージのタイプを示すべきである。 name と message のエンコーディングがホストポータブル文字エンコーディン グでない場合、実行結果は実装依存である。 Xlib はエラーを報告するために3つの予め定義された``アプリケーション名'' を使用する。 これらの名前については、大文字と小文字は区別される。

XProtoError
プロトコルエラー番号は、引き数 message に対する文字列として使用される。
XlibMessage
これらは、ライブラリによって内部的に使用されるメッセージ文字列である。
XRequest
コアプロトコルリクエストに対して、メジャーリクエストプロトコル番号は引き数 message に対して使用される。 拡張リクエストに対して、ピリオド(.)前にある拡張名( InitExtension で与えられる )とマイナーリクエストプロトコル番号は引き数 message に対し て使用される。 エラーデータベースで文字列が見つからない場合には、default_strin が引き数 buffer に返される。
 

関連項目

XOpenDisplay(3X11), XSynchronize(3X11)
Xlib - C Language X Interface


 

Index

名前
書式
引き数
説明
関連項目

This document was created by man2html, using the manual pages.
Time: 15:55:59 GMT, February 12, 2001