回覆列表
  • 1 # 使用者6727377717122

    ioctl是iocontrol的縮寫,就是IO控制。

    行為上:

    簡單來說,如果你在寫驅動程式時候,碰到一些IO操作,在邏輯上不能歸類到read,不能歸類到write,那就可以認為是ioctl的部分。

    read和write應該是寫入和讀出資料的,應該是作為單純的資料交換的方式來處理。而ioctl則是控制read和write一些選項的。比如:你做了一個通用的讀寫IO埠的驅動模組。read和write是從埠讀寫資料的,但是更改讀寫的埠,這個操作應該如何處理呢?顯然用ioctl來實現比較合理。比如你的read和write是可以阻塞的,或者不能阻塞的,或者對裝置檔案的讀寫是可以併發的,或者是不可以併發的,這些都可以寫成可以用ioctl來配置的情況。後面為了可以用ioctl來實現模組不同的IO特點。

    引數上,ioctl的一般引數格式就是命令字(常量)+命令引數的方式。

    read和write的引數格式都是資料緩衝區+資料目的地指標+長度。

  • 中秋節和大豐收的關聯?
  • AMD860K配什麼顯示卡好?