Query: cmpt_setent
OS: hpux
Section: 3
Format: Original Unix Latex Style Formatted with HTML and a Horizontal Scroll Bar
cmpt_getbynum(3) Library Functions Manual cmpt_getbynum(3)NAMEcmpt_getbynum(), cmpt_endent(), cmpt_getbyname(), cmpt_getent(), cmpt_setent() - map compartment name to number or number to nameSYNOPSISParameters cmpt_name Pointer to a string containing a compartment name. cmpt_num Compartment number. state Pointer to internal state. Structure Members The structure is defined in It contains at least the following fields:DESCRIPTIONCompartments are referenced by strings in configuration files under but are maintained as numbers internally. The functions and query and iterate over this database. Returns the compartment number corresponding to the string specified by cmpt_name. Returns the compartment name corresponding to cmpt_num. If the return value is not NULL, it is the responsibility of the caller to free the returned value using See free(3C). Opens the database connection to allow an iterative search. Returns a pointer to the next compartment name/number pair from the database. The user must not call to release the memory pointed to by the return value. Closes the database connection. Notes Every call to must be matched with a corresponding call toRETURN VALUEreturns the following values: Successful completion. The function returns a valid compartment number. Function failed. is set to indicate the error. returns the following values: pointer Successful completions. Returns a non-null pointer to a string containing the compartment name. NULL pointer Function failed. Returns a null pointer and sets to indicate the error . The caller is responsible for freeing the result. returns the following values: Successful completion. Function failed. is set to indicate the error. returns the following values: pointer Succesaful completions. Returns a non-null pointer to a structure. NULL pointer Function failed or entries are exhausted. In case of an error, is set to indicate the error. sets to and returns a null pointer when all entries have been exhausted.ERRORSIf any of the following conditions occur, the functions fail and set Compartment name or number does not exist. Compartmentalization is not enabled on this system. The function failed to allocate sufficient memory for its operation.EXAMPLESExample 1 Get the compartment number associated with a name. #include <sys/cmpt.h> void main(int argc, char **argv) { cmpt_t cmptid; cmptid = cmpt_getbyname("INIT"); if (cmptid != -1) { printf(" Compartment id : %d ", cmptid); } else { printf(" Error getting compartment number "); } } Example 2 Get the compartment name associated with a number. #include <sys/cmpt.h> void main(int argc, char **argv) { char *name; name = cmpt_getbynum((cmpt_t)2); if (name) { printf(" Compartment name : %s ", name); free(name); } else { printf(" Error getting compartment name "); } } Example 3 Iterate through compartment mapping entries. #include <errno.h> #include <sys/cmpt.h> void main(int argc, char **argv) { struct cmpt_pair *pair; struct cmpt_state *state if (cmpt_setent(&state) != 0) { perror("cmpt_setent failed"); exit(1); } /* get entries until a NULL returned */ while ( pair = cmpt_getent(&state) ) { printf(" Compartment Nnumber : %d Name : %s ", pair->cmpt_num, pair->cmpt_name); } if (errno == 0) { printf(" All Entries printed "); } else { printf(" Error getting compartment entry "); } cmpt_endent(); }DEPENDENCIESThese functions are a part of the library, which can be linked with your executable with the option.SEE ALSOcompartments(4), compartments(5). cmpt_getbynum(3)