linux/ioctl.h //定義ioctl函式用的命令號,由四個位段構成
@type:魔數,8位(定義於巨集__ioc_typebits)寬,整個驅動中唯一
@number:順序號,8位(定義於巨集__ioc_nrbits)寬
@direction:資料傳送方向,如果此命令涉及資料傳送,__ioc_read,__ioc_write,
// __ioc_none,是位掩碼,可以或在一起
@size:涉及到的使用者資料大小,一般填上sizeof( data_type)
_io(type,nr) //命令構造巨集,無參命令
_ior(type,nr,datatype) //命令構造巨集,從驅動讀資料
_iow(type,nr,datatype) //命令構造巨集,寫資料
_iowr(type,nr,datatype) //命令構造巨集,雙向
fioclex,fionclex,fioasync,fioqsize,fionbio //系統預定義的針對任何檔案的cmd
_ioc_dir(cmd) //解碼巨集,獲取方向
_ioc_type(cmd) //解碼巨集,獲取魔數
_ioc_nr(cmd) //解碼巨集,獲取序號
_ioc_size(cmd) //解碼巨集,獲取size
ioctl函式介紹
我這裡說的ioctl函式是在驅動程式裡的,因為我不知道還有沒有別的場合用到了ioctl,所以就規定了我們討論的範圍。為什麼要寫篇文章呢,是因為我前一陣子被ioctl給搞混 了,這幾天才弄明白它,於是在這裡清理一下頭腦。一 什麼是ioctl。ioctl是裝置驅動程式中對裝置的i o通道進行管理的函式。...
ioctl 函式詳解
int ioctl struct inode struct file unsigned int,unsigned long 這是驅動程式裝置控制介面函式 ioctl函式 的核心原型定義,struct inode 和 struct file 描述了操作的檔案,unsigned int 描述了ioctl...
ioctl引數命令設定
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...