/* This example is placed in the public domain. */ #include #include #include #include #include #include int main(int argc, char *argv[]) { struct mnl_socket *nl; char buf[MNL_SOCKET_BUFFER_SIZE]; int ret; nl = mnl_socket_open(NETLINK_KOBJECT_UEVENT); if (nl == NULL) { perror("mnl_socket_open"); exit(EXIT_FAILURE); } /* There is one single group in kobject over netlink */ if (mnl_socket_bind(nl, (1<<0), MNL_SOCKET_AUTOPID) < 0) { perror("mnl_socket_bind"); exit(EXIT_FAILURE); } ret = mnl_socket_recvfrom(nl, buf, sizeof(buf)); while (ret > 0) { int i; /* kobject uses a string based protocol, with no initial * netlink header. */ for (i=0; i