ONC+ 開発ガイド

NIS+ の API

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

各グループの関数について次の表で簡単に説明します。グループ名は、NIS+ のマニュアルページのグループ名と同じです。

表 9–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-name domain-name の形式を取る

nis_local_group()

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

nis_local_principal ()

呼び出し側プロセスに関連付けられた UID を持つ NIS+ 主体名を返す 

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+ オブジェクト構造体の内容を stdout へ出力する