名称
nis_error, nis_sperrno, nis_perror, nis_lerror, nis_sperror,
nis_sperror_r ― NIS+ エラーメッセージの表示
構文
cc [ flag... ] file... -lnsl [ library... ]
#include <rpcsvc/nis.h>
char *nis_sperrno(const nis_error status);
void nis_perror(const nis_error status,
const char *label);
void nis_lerror(const nis_error status,
const char *label);
char *nis_sperror_r(nis_error status,
char *label,
char * buf);
char *nis_sperror(const nis_error status,
const char *label);
説明
これらの関数は NIS+ ステータス値をテキスト文字列に変換します。
nis_sperrno() は、エラーの文字列定数を指すポインタを戻します。
nis_perror() は、 status
に対応するエラーメッセージを標準エラーの ``label: エラーメッセージ'' としてプリントします。
nis_lerror() は、エラーテキストを LOG_ERR のレベルで syslog(3C) に送ります。
関数 nis_sperror_r() は、使用可能な文字列、または strdup() 関数
( string (3C) を参照) でコピーできる文字列を指すポインタを戻します。呼び出し側は、エラー文字列を保持できる大きさの文字列バッファ buf を用意する必要があります
(バッファサイズは 128 バイトで十分です)。
最後の関数 nis_sperror() は nis_sperror_r() とよく似ていますが、各呼び出しで再利用可能なバッファを指すポインタとして文字列が戻されます。 nis_sperror_r() はシングルスレッドとマルチスレッドのどちらのプログラムにも適しているので、 nis_sperror_r() の方を使用するようにしてください。
マルチスレッドの使用法
| Thread
Safe: | | Yes |
| Cancel Safe: | | Yes |
| Fork Safe: | | No |
| Async-cancel Safe: |
| | | No |
| Async-signal Safe: |
| | | No |
これらの関数は、マルチスレッド環境で支障なく呼び出すことができます。
これらの関数は、キャンセルポイントの関数を呼び出した時点でキャンセルポイントになります。
マルチスレッド環境では、fork() の後と exec() の前の子プロセスでこれらの関数を呼び出すことは安全ではありません。
非同期キャンセルまたは非同期シグナルをサポートするマルチスレッドアプリケーションでこれらの関数を呼び出さないようにしてください。
警告
HP-UX 11i Version 2 は、NIS+ がサポートされる最後の HP-UX
リリースです。
NIS+ の代わりに LDAP を推奨します。 HP は、LDAP に基づく業界標準のネームサービスを完全にサポートします。