libnl中nl_socket_set_cb()的用途
最近,我正在研究libnl中nl_socket_set_cb()的用途,c,linux,C,Linux,最近,我正在研究iw的源代码,试图了解libnl是如何工作的 我在iw.c的某个地方遇到了使用nl\u socket\u set\u cb()。网络上也没有文档 我的第一个怀疑是当有数据要从nl套接字读取时关联回调函数,但这是在源代码的其他部分中通过在调用nl\u recvmsgs()时关联回调来完成的 有人能解释一下吗?nl\u socket\u set\u cb()。在通过套接字发送任何内容之前,在nl\u sendmsg()中调用该回调 但是,如果改为使用,则nl\u socket\u s
iw
的源代码,试图了解libnl
是如何工作的
我在iw.c
的某个地方遇到了使用nl\u socket\u set\u cb()。网络上也没有文档
我的第一个怀疑是当有数据要从nl套接字读取时关联回调函数,但这是在源代码的其他部分中通过在调用nl\u recvmsgs()
时关联回调来完成的
有人能解释一下吗?nl\u socket\u set\u cb()。在通过套接字发送任何内容之前,在nl\u sendmsg()
中调用该回调
但是,如果改为使用,则nl\u socket\u set\u cb()
非常方便,因为它将回调存储在sk->s\u cb
结构中,并传递给发送和接收函数
我认为nl\u socket\u set\u sb()
的真正用途是对同一个套接字重新使用nl\u recvmsgs\u default()
,因为它似乎删除了存储在sk
结构中的任何先前设置的回调