Solaris 10 资源管理器开发者指南

用于访问 project 数据库各项的代码示例


示例 2–1 列显 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–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);

}