1 运行flow
本文以Linux kernel3.10版本描述
上图是《Understanding LINUX NETWORK INTERNALS》一书中对socket的ioctl调用的整体flow,本文只对其中SIOCSIFADDR这一个command进行flow的梳理。
首先是socket的创建,这在上图中没有标识出来,大致flow如下图所示,这部分源码在 net/socket.c中
socket的create对ioctl的作用主要有两点:
1、如何在执行ioctl时,调用到sock_ioctl
在创建inode时,将socket_file_ops赋给inode→i_fop。这样在执行ioctl时,通过执行在inode的函数指针,最终调用的就是sock_ioctl函数。
如不理解上一句话,可参考如下解释:
s