kstat_open, kstat_close - initialize kernel statistics facility
cc[ flag… ] file… –lkstat [ library…] #include <kstat.h> kstat_ctl_t *kstat_open(void);
int kstat_close(kstat_ctl_t *kc);
The kstat_open() function initializes a kstat control structure that provides access to the kernel statistics library. It returns a pointer to this structure, which must be supplied as the kc argument in subsequent libkstat function calls.
The kstat_close() function frees all resources that were associated with kc. This is performed automatically on the exit() and execve() functions. For more information, see the exit(2) and execve(2) man pages.
Upon successful completion, kstat_open() returns a pointer to a kstat control structure. Otherwise, it returns NULL, no resources are allocated, and errno is set to indicate the error.
Upon successful completion, kstat_close() returns 0. Otherwise, −1 is returned and errno is set to indicate the error.
The kstat_open() function will fail if:
Insufficient storage space is available.
The kstat was temporarily unavailable for reading or writing.
The given kstat could not be located for reading.
The data for the given kstat was too large to be stored in the structure.
The kstat_open() function can also return the error values for the open() function. For more information, see the open(2) man page.
The kstat_close() function can also return the error values for the close() function. For more information, see the close(2) man page.
kernel statistics driver
See attributes(7) for descriptions of the following attributes:
The kstat_open() function is Safe. The kstat_close() function is MT-Safe with the exception that only one thread may actively use a kstat_ctl_t * value at any time. Synchronization is left to the application.
The kstat_open() and kstat_close() functions are deprecated. They may be removed in a future release of Oracle Solaris. Use the kstat2_open() and kstat2_close() functions instead. For more information, see the kstat2_open(3KSTAT2) and kstat2_close(3KSTAT2) man pages.