ifconfig做了些什麼

當使用ifconfig命令向接口分配地址時, 要執行兩個任務。

首先,它通過 ioctl(SIOCSIFADDR)設置地址,然後通過通過 ioctl(SIOCSIFFLAGS)設置dev->flag IFF_UP 位來打開接口。

對設備驅動而言,無需對ioctl(SIOCSIFADDR) 做任何工作,內核不會調用任何驅動程序函數,而後一個命令 ioctl(SIOCSIFFLAGS)會調用設備的open函數。

類似地,在接口關閉時,ifconfig使用ioctl(SIOCSIFFLAGS)來清除IFF_UP標誌,然後調用stop函數。

ifconfig進程會創建一個socket,上面的兩個ioctl調用所用的fd就是此socket。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章