linux socket编程(udev举例)

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

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >



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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值