ONC+ 開発ガイド

NIS+ の API

NIS+ の アプリケーションプログラマーズインタフェース (API) は関数の集合です。アプリケーションでは、これらの関数を呼び出して NIS+ オブジェクトにアクセスしたり変更したりできます。NIS+ の API には 54 個の関数があり、それらは次の 9 つのグループに分類されます。

表 5-2 では、これらの関数をグループごとにまとめて簡単に説明します。グループ名は、NIS+ のマニュアルページのグループ名と同じです。

表 5-2 NIS+ の API 関数

関数 

説明 

nis_names()

オブジェクトの検索と操作 

nis_lookup()

NIS+ オブジェクトのコピーを返す。リンクをたどることができる。エントリオブジェクトの検索はできないが、リンクがエントリオブジェクトを指している場合は、それを返すことができる。 

nis_add()

NIS+ オブジェクトを名前空間に追加する。 

nis_remove()

NIS+ オブジェクトを名前空間から削除する。 

nis_modify()

名前空間の NIS+ オブジェクトを変更する。 

nis_tables()

テーブルの検索と更新を行う。 

nis_list()

NIS+ 名前空間内のテーブルを検索して、検索条件に一致するエントリオブジェクトを返す。テーブル間のリンクと検索パスをたどることができる。 

nis_add_entry()

NIS+ テーブルにエントリオブジェクトを追加する。既存オブジェクトがあれば操作を中止するか上書きするかを指定できる。操作が正常終了した場合は、追加したオブジェクトのコピーが返される。 

nis_freeresult()

nis_result 構造体に割り当てられたメモリーをすべて解放する。

nis_remove_entry()

NIS+ テーブルからエントリオブジェクトを削除する。削除するオブジェクトは、検索条件で指定するか、キャッシュされたオブジェクトコピーへのポインタで指定できる。検索条件で指定する場合は、その条件に一致するオブジェクトをすべて削除できる。したがって、検索条件を適切に指定すれば、テーブル内の全エントリを削除することもできる。操作が正常終了した場合は、削除したオブジェクトのコピーが返される。 

nis_modify_entry()

NIS+ テーブルのエントリオブジェクトを変更する。変更するオブジェクトは、検索条件で指定するか、キャッシュされたオブジェクトコピーへのポインタで指定する。 

nis_first_entry()

NIS+ テーブルの最初のエントリオブジェクトのコピーを返す 

nis_next_entry()

NIS+ テーブルの「次」のエントリオブジェクトのコピーを返す。この関数への呼び出しと呼び出しの間に、テーブルの更新やエントリの追加、変更が行われる可能性があるので、返されたエントリの順序が実際のテーブル内のエントリ順序と一致しない場合がある。 

nis_local_names()

現在のプロセスのデフォルト名を取り出す。 

nis_local_directory()

ワークステーションの NIS+ ドメイン名を返す。 

nis_local_host()

修飾子付きのワークステーション名を返す。修飾子付きのワークステーション名は、host-namedomain-name という形式になる。

nis_local_group()

現在の NIS+ グループ名を返す。現在の NIS+ グループは、環境変数 NIS_GROUP で指定される。 

nis_local_principal()

NIS+ 主体名 (その主体の UID は呼び出し側プロセスに結合) を返す。 

nis_getnames()

特定の名前に対する可能な展開形のリストを返す。 

nis_freenames()

nis_getnames()が生成したリストが使用するメモリーを解放する。

nis_groups()

グループ操作と許可。 

nis_ismember()

ある主体がグループのメンバーかどうか調べる。 

nis_addmember()

グループにメンバーを追加する。メンバーは主体、グループ、ドメインのどれか。 

nis_removemember()

グループからメンバーを削除する。 

nis_creategroup()

グループオブジェクトを作成する。 

nis_destroygroup()

グループオブジェクトを削除する。 

nis_verifygroup()

グループオブジェクトが存在しているかどうか調べる。 

nis_print_group_entry()

グループオブジェクトのメンバーになっている主体を表示する。 

nis_server()

NIS+ アプリケーションのための種々のサービス。 

nis_mkdir()

特定ホストの特定ディレクトリに対するサービスをサポートするためのデータベースを作成する。 

nis_rmdir()

ホストからディレクトリを削除する。 

nis_servstate()

NIS+ サーバーの状態変数の設定と読み込みを行い、内部キャッシュをフラッシュする。 

nis_stats()

サーバーのパフォーマンスに関する統計情報を取り出す。 

nis_getservlist()

特定のドメインをサポートするサーバーのリストを返す。 

nis_freeservlist()

nis_getservlist() が返したサーバーリストが使用するメモリーを解放する。

nis_freetags()

nis_servstate()nis_stats() の戻り値が使用するメモリーを解放する。

nis_db()

NIS+ サーバーとデータベースの間のインタフェース。NIS+ クライアントでは使用不可。 

db_first_entry()

指定したテーブルの最初のエントリのコピーを返す。 

db_next_entry()

指定したエントリの次のエントリのコピーを返す。 

db_reset_next_entry()

最初または次のエントリシーケンスを終了する。 

db_list_entries()

指定した属性に一致するエントリのコピーを返す。 

db_remove_entry()

指定した属性に一致するエントリをすべて削除する。 

db_add_entry()

指定した属性に一致するテーブルエントリを、指定したオブジェクトのコピーで置き換える。または、指定したオブジェクトをテーブルに追加する。 

db_checkpoint()

テーブルの内容を再編成して、テーブルのアクセス効率を改善する。 

db_standby()

データベースマネージャに資源の解放を勧める。 

nis_error()

NIS+ のステータス値に対応するメッセージ文字列を取り出す関数。 

nis_sperrno()

メッセージ文字列定数へのポインタを返す。 

nis_perror()

メッセージ文字列定数を標準出力に表示する。 

nis_lerror()

メッセージ文字列定数を syslog に送信する。

nis_sperror()

strdup() 使用するかまたはでコピーするために静的領域に割り当てられた文字列へのポインタを返す。

nis_admin()

トランザクションのログを取る関数。サーバーで使用。 

nis_ping()

ディレクトリのマスタサーバーが、ディレクトリのタイムスタンプを作成するのに使用する。この関数を実行すると、複製も強制的に更新される。 

nis_checkpoint()

ログデータを強制的にディスク上のテーブルに保存する。 

nis_subr()

NIS+ のネームとオブジェクトの操作のための補助関数。 

nis_leaf_of()

NIS+ ネームの最初のラベルを返す。返されたネームには、末尾のピリオドは付いていない。 

nis_name_of()

ネームからドメイン関連のラベルをすべて削除して、固有のオブジェクト部分だけを返す。この関数に渡されたネームは、ローカルドメイン、または、その子ドメインでなければならない。それ以外の場合は NULL が返される。 

nis_domain_of()

オブジェクトが入っているドメイン名を返す。返されたドメイン名はピリオドで終わっている。 

nis_dir_cmp()

2 つの NIS+ 名を比較する。大文字小文字の違いは無視して比較し、ネームが同じか、派生関係にあるか、無関係かを返す。 

nis_clone_object()

NIS+ オブジェクトの完全な複製を作成する。

nis_destroy_object()

nis_clone_object() で作成したオブジェクトを破棄する。

nis_print_object()

NIS+ オブジェクト構造体の内容を標準出力に表示する。