SYSEVENT_GET_VENDOR_NAME(3SYSEVENT) | System Event Library Functions | SYSEVENT_GET_VENDOR_NAME(3SYSEVENT) |
cc [flag ...] file... -lsysevent [library ...] #include <libsysevent.h> char *sysevent_get_vendor_name(sysevent_t *ev);
char *sysevent_get_pub_name(sysevent_t *ev);
void sysevent_get_pid(sysevent_t *ev, pid_t *pid);
The sysevent_get_pid() function sets the process ID pid to that of the publishing application or SE_KERN_PID for sysevents originating in the kernel. The publisher name and PID are useful for implementing event acknowledgement.
The sysevent_get_vendor_name() function returns the vendor string for the publishing application or kernel subsystem. A vendor string is the company's stock symbol that provided the application or kernel subsystem that generated the system event. This information is useful for filtering sysevents for one or more vendors.
The interface manages the allocation of the vendor and publisher name strings, but it is the caller's responsibility to free the strings when they are no longer needed by calling free(3MALLOC). If the new vendor and publisher name strings cannot be created, sysevent_get_vendor_name() and sysevent_get_pub_name() return a null pointer and may set errno to ENOMEM to indicate that the storage space available is insufficient.
The following example parses sysevent header information from an application's event handler.
char *vendor; char *pub; pid_t pid; void event_handler(sysevent_t *ev) { if (strcmp(EC_PRIV, sysevent_get_class_name(ev)) != 0) { return; } vendor = sysevent_get_vendor_name(ev); if (strcmp("SUNW", vendor) != 0) { free(vendor); return; } pub = sysevent_get_pub_name(ev); if (strcmp("test_daemon", pub) != 0) { free(vendor); free(pub); return; } sysevent_get_pid(ev, &pid); (void) kill(pid, SIGUSR1); free(vendor); free(pub); }
ATTRIBUTE TYPE | ATTRIBUTE VALUE |
Interface Stability | Committed |
MT-Level | MT-Safe |
June 29, 2015 | OmniOS |