union sockaddr_union {
struct sockaddr sa;
struct sockaddr_in in4;
struct sockaddr_in6 in6;
struct sockaddr_un un;
struct sockaddr_nl nl;
struct sockaddr_storage storage;
};
通常的套接口地址
struct sockaddr {
sa_family_t sa_family; /* Address Family */
char sa_data[14]; /* Address data. */
};
UNIX本地通讯套接口地址
struct sockaddr_un
{
sa_family_t sun_family;
char sun_path[108]; /* Path name. */
};
NETLINK的套接口地址
struct sockaddr_nl
{
sa_family_t nl_family;
unsigned short nl_pad;
__u32 nl_pid;
__u32 nl_groups;
};
socket编程接口:
socket
udev_device_new_from_device_id
udev_monitor_new_from_netlink_fd
udev_ctrl_new_from_fd
rename_netif
bind
udev_monitor_enable_receiving
udev_ctrl_enable_receiving
sendmsg
udev_monitor_send_device
recvmsg
udev_ctrl_receive_msg
close
udev_monitor_disconnect
udev_moni

本文介绍了Linux下udev设备管理中的Socket编程,涉及Netlink套接字的使用。通过示例展示了如何创建一个服务程序来接收内核消息。主要步骤包括:创建netlink socket、绑定源socket地址、监听连接请求、接受连接、获取和设置socket信息。
最低0.47元/天 解锁文章
1161

被折叠的 条评论
为什么被折叠?



