setprojent() は、最初から開始するために project データベースを巻き戻します。
getprojent() は、project.h で定義されている保守的な最大バッファーサイズで呼び出されます。
endprojent() は、project データベースをクローズし、リソースを解放します。
#include <project.h> struct project projent; char buffer[PROJECT_BUFSZ]; /* Use safe buffer size from project.h */ ... struct project *pp; setprojent(); /* Rewind the project database to start at the beginning */ while (1) { pp = getprojent(&projent, buffer, PROJECT_BUFSZ); if (pp == NULL) break; printf("%s:%d:%s\n", pp->pj_name, pp->pj_projid, pp->pj_comment); ... }; endprojent(); /* Close the database and free project resources */使用例 2 呼び出し元のプロジェクト ID に一致する project データベースエントリを取得する
次の例では、getprojbyid() を呼び出して、呼び出し元のプロジェクト ID に一致するプロジェクトデータベースエントリを取得します。この例では、次にプロジェクト名とプロジェクト ID を出力します。
#include <project.h> struct project *pj; char buffer[PROJECT_BUFSZ]; /* Use safe buffer size from project.h */ main() { projid_t pjid; pjid = getprojid(); pj = getprojbyid(pjid, &projent, buffer, PROJECT_BUFSZ); if (pj == NULL) { /* fail; */ } printf("My project (name, id) is (%s, %d)\n", pp->pj_name, pp->pj_projid); }