| 
 | |||
| 1. Resource Management in the Solaris Operating System Overview of Projects and Tasks Project and Task API Functions Programming Issues Associated With Projects and Tasks 3. Using the C Interface to Extended Accounting 4. Using the Perl Interface to Extended Accounting 7. Design Considerations for Resource Management Applications in Solaris Zones | Code Examples for Accessing project Database EntriesExample 2-1 Printing the First Three Fields of Each Entry in the project DatabaseThe key points for this example include the following: 
 #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 */Example 2-2 Getting a project Database Entry That Matches the Caller's Project IDThe following example calls getprojbyid() to get a project database entry that matches the caller's project ID. The example then prints the project name and the project 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);
} | ||
| 
 |