#define scull_ioc_magic 'k'
#define scull_iocreset _io(scull_ioc_magic, 0)
#define scull_iocsquantum _iow(scull_ioc_magic, 1, int)
#define scull_iocsqset _iow(scull_ioc_magic, 2, int)
#define scull_ioctquantum _io(scull_ioc_magic, 3)
#define scull_ioctqset _io(scull_ioc_magic, 4)
#define scull_iocgquantum _ior(scull_ioc_magic, 5, int)
#define scull_iocgqset _ior(scull_ioc_magic, 6, int)
#define scull_iocqquantum _io(scull_ioc_magic, 7)
#define scull_iocqqset _io(scull_ioc_magic, 8)
#define scull_iocxquantum _iowr(scull_ioc_magic, 9, int)
#define scull_iocxqset _iowr(scull_ioc_magic,10, int)
#define scull_iochquantum _io(scull_ioc_magic, 11)
#define scull_iochqset _io(scull_ioc_magic, 12)
以上是lld3中定義ioctl的命令,首先要定義乙個不與已用magic數衝突的幻數;_io為不帶引數的命令;_ior為讀驅動資料的命令(put_user將資料傳給使用者層);_iorw,_iow類推。
注:(是否只有按上述巨集定義,才能獲得相應的與應用層io的許可權?)
ioctl引數詳解
本函式影響由fd引數引用的乙個開啟的檔案。include int ioctl int fd,int request,返回0 成功 1 出錯 第三個引數總是乙個指標,但指標的型別依賴於request引數。套介面操作 檔案操作 介面操作 arp快取記憶體操作 路由表操作 流系統類別request 說明資...
關於 ioctl 的 FIONREAD 引數
ioctl 是用來設定硬體控制暫存器,或者讀取硬體狀態暫存器的數值之類的。而read,write 是把資料丟入緩衝區,硬體的驅動從緩衝區讀取資料乙個個傳送或者把接收的資料送入緩衝區。ioctl keyfd,fionread,b 得到緩衝區裡有多少位元組要被讀取,然後將位元組數放入b裡面。接下來就可以...
關於 ioctl 的 FIONREAD 引數
ioctl 是用來設定硬體控制暫存器,或者讀取硬體狀態暫存器的數值之類的。而read,write 是把資料丟入緩衝區,硬體的驅動從緩衝區讀取資料乙個個傳送或者把接收的資料送入緩衝區。ioctl keyfd,fionread,b 得到緩衝區裡有多少位元組要被讀取,然後將位元組數放入b裡面。接下來就能夠...