Museum

Home

Lab Overview

Retrotechnology Articles

⇒ Online Manual

Media Vault

Software Library

Restoration Projects

Artifacts Sought

Related Articles

XSynchronize(3X11)

XSetErrorHandler(3X11)  —  UNIX Programmer’s Manual

名称

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

形式

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; 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
データベース中に何も見つからない場合の、デフォルトエラーメッセージを 指定します。

displayX サーバへのコネクションを指定します。

handlerプログラムが与えるエラーハンドラを指定します。

lengthバッファのサイズを指定します。

messageエラーメッセージの型を指定します。

nameアプリケーション名を指定します。

string文字列を指定します。

解説

Xlib は、一般にエラーを受けたときはいつでも、プログラムが与えるエラー ハンドラを呼び出します。 OpenFont、 LookupColor または、 AllocNamedColor プロトコルリクエストからの BadName エラー、または QueryFont プロトコルリクエストからの BadFont エラーについては、エラーハンドラは呼び出されません。 一般にこれらのエラーは、手続きインターフェースを通してプログラムに反 映されます。 この状態は、致命的であると仮定されていないので、エラーハンドラからリ ターンすることができます。 ただし、エラーハンドラは、プロトコルリクエストを出すディスプレイ、ま たは、入力イベントを探しているディスプレイ上のいかなる関数(直接的ま たは間接的に)も呼び出してはなりません。 XGetErrorText 関数は、指定されたエラーコードを説明するナルで終わる文字列を、指定さ れたバッファへコピーします。 Xlib の拡張部は、それら自身のエラーコード、およびエラー文字列を定義 するので、 XGetErrorText 関数を使用して、エラーの説明を受けることを お勧めします。 XDisplayName 関数は、 XOpenDisplay が使用しようとしているディスプレイの名前を返します。 NULL 文字列が指定された場合は、 XDisplayName は、そのディスプレイの環境を見て、 XOpenDisplay が使用しようとしてい るディスプレイ名を返します。 これにより、容易に最初のコネクションの試みが失敗したときに、そのプロ グラムがオープンしようとしたディスプレイを、正確にユーザに伝える ことができます。 XSetIOErrorHandler は、致命的な I/O エラーハンドラを設定します。Xlib は、どんな種類のシ ステムコールエラーが生じた場合でも、プログラムが与えるエラーハンドラ を呼び出します(たとえは、サーバへのコネクションが失敗した)。 これは致命的な状態であると仮定されるので、呼び出されたルーチンからリ ターンしてはいけません。 I/O エラーハンドラからリターンした場合に、クライアントのプロセスが終 了します。 XGetErrorDatabaseText 関数は、エラーメッセージのデータベースから、メッセージ(または、 デフォルトメッセージ)を返します。 Xlib は、内部でこの関数を使用して、エラーメッセージを捜します。 UNIX ベースのシステムでは、エラーメッセージのデータベースは、 /usr/lib/X11/XErrorDB です。 name 引数は、一般に、アプリケーション名でなければなりません。 message 引数は、希望するエラーの型を示さなければなりません。 Xlib は、3 つの事前に定義されたメッセージの型を使用して、エラーを通知 します(大文字および小文字で)。

XProtoErrorプロトコルエラー番号は、 message 引数の文字列として使用されます。

XlibMessageライブラリが内部で使用するメッセージ文字列です。

XRequest主要なリクエストプロトコル番号は、 message 引数に使用されます。 エラーデータベースに文字列が見つからない場合は、 default_string が buffer 引数に返されます。

関連事項

XSynchronize(3X11)
Xlib − C Language X Interface

NEWS-OSRelease 3.3

Typewritten Software • bear@typewritten.org • Edmonds, WA 98026