プロジェクトで作業する開発者を支援するために、次の関数が用意されています。これらの関数では、project データベース内のユーザープロジェクトを記述するエントリが使用されます。
これらの関数の詳細は、man pages section 3: Extended Library Functions, Volume 3を参照してください。
処理が完了すると、プロジェクトデータベースをクローズし、リソースの割り当てを解除します。
プロジェクトデータベース内のエントリを含む構造体へのポインタを返します。fgetprojent() は、nsswitch.conf を使用するのではなく、ストリームから行を読み取ります。
プロジェクトキーワードの有効性を確認し、プロジェクトを探し、見つかった場合はプロジェクト構造へのポインタを返します。
プロジェクト ID を指定する番号を使用して、project データベースでエントリを検索します。
プロジェクト名を指定する文字列を使用して、project データベースでエントリを検索します。
プロジェクトデータベース内のエントリを含む構造体へのポインタを返します。
指定されたユーザーが、指定されたプロジェクトの使用を許可されているかどうかを確認します。
呼び出し元プロセスは、ターゲットプロジェクト内に新しいタスクを作成することによって、ターゲットプロジェクトに参加します。
繰り返し検索を可能にするために project データベースを巻き戻します。
リエントラント関数 getprojent()、getprojbyname()、getprojbyid()、getdefaultproj()、および inproj() は、呼び出し元から提供されたバッファーを使用して、返される結果を格納します。これらの関数は、シングルスレッドアプリケーションとマルチスレッドアプリケーションの両方で安全に使用できます。
リエントラント関数は 3 つの追加引数を必要とします。
proj
buffer
bufsize
proj 引数は、呼び出し元によって割り当てられた project 構造体へのポインタである必要があります。正常完了時に、これらの関数はこの構造体のプロジェクトのエントリを返します。project 構造体が参照するストレージは、buffer 引数で指定されたメモリーから割り当てられます。bufsize は、サイズをバイト数で指定します。
不正なバッファーサイズが使用されている場合、getprojent() は NULL を返し、errno を ERANGE に設定します。