生活随笔
收集整理的這篇文章主要介紹了
ioctl , fcntl socket操作详解
小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
nt ioctl( int fd, int request, .../* void *arg */ );
返回0:成功??? -1:出錯(cuò)
第三個(gè)參數(shù)總是一個(gè)指針,但指針的類型依賴于request參數(shù)。
我們可以把和網(wǎng)絡(luò)相關(guān)的請(qǐng)求劃分為6類:
套接口操作
文件操作
接口操作
ARP高速緩存操作
路由表操作
流系統(tǒng)
下表列出了網(wǎng)絡(luò)相關(guān)ioctl請(qǐng)求的request參數(shù)以及arg地址必須指向的數(shù)據(jù)類型:
| 類別 | Request | 說明 | 數(shù)據(jù)類型 |
| 套? 接? 口 | SIOCATMARK? SIOCSPGRP? SIOCGPGRP | 是否位于帶外標(biāo)記? 設(shè)置套接口的進(jìn)程ID 或進(jìn)程組ID? 獲取套接口的進(jìn)程ID 或進(jìn)程組ID | int? int? int |
| 文? 件 | FIONBIN? FIOASYNC? FIONREAD? FIOSETOWN? FIOGETOWN | 設(shè)置/?清除非阻塞I/O 標(biāo)志? 設(shè)置/ 清除信號(hào)驅(qū)動(dòng)異步I/O 標(biāo)志? 獲取接收緩存區(qū)中的字節(jié)數(shù)? 設(shè)置文件的進(jìn)程ID 或進(jìn)程組ID? 獲取文件的進(jìn)程ID 或進(jìn)程組ID | int? int? int? int? int |
| 接? 口 | SIOCGIFCONF? SIOCSIFADDR? SIOCGIFADDR? SIOCSIFFLAGS? SIOCGIFFLAGS? SIOCSIFDSTADDR? SIOCGIFDSTADDR? SIOCGIFBRDADDR? SIOCSIFBRDADDR? SIOCGIFNETMASK? SIOCSIFNETMASK? SIOCGIFMETRIC? SIOCSIFMETRIC? SIOCGIFMTU? SIOCxxx | 獲取所有接口的清單? 設(shè)置接口地址? 獲取接口地址? 設(shè)置接口標(biāo)志? 獲取接口標(biāo)志? 設(shè)置點(diǎn)到點(diǎn)地址? 獲取點(diǎn)到點(diǎn)地址? 獲取廣播地址? 設(shè)置廣播地址? 獲取子網(wǎng)掩碼? 設(shè)置子網(wǎng)掩碼? 獲取接口的測(cè)度? 設(shè)置接口的測(cè)度? 獲取接口MTU? (還有很多取決于系統(tǒng)的實(shí)現(xiàn)) | struct ifconf? struct ifreq? struct ifreq? struct ifreq? struct ifreq? struct ifreq? struct ifreq? struct ifreq? struct ifreq? struct ifreq? struct ifreq? struct ifreq? struct ifreq? struct ifreq |
| ARP | SIOCSARP? SIOCGARP? SIOCDARP | 創(chuàng)建/?修改ARP 表項(xiàng)? 獲取ARP 表項(xiàng)? 刪除ARP 表項(xiàng) | struct arpreq? struct arpreq? struct arpreq |
| 路? 由 | SIOCADDRT? SIOCDELRT | 增加路徑? 刪除路徑 | struct rtentry? struct rtentry |
| 流 | I_xxx | ? | ? |
socket最常用到的結(jié)構(gòu)體: struct ifreq 定義在<net/if.h>.(包括struct ifconf/ifr_flags等的定義)
總結(jié)
以上是生活随笔為你收集整理的ioctl , fcntl socket操作详解的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。