ioctl, 我們在第 1 章展示給你如何使用, 是一個系統調用, 作用於一個文件描述符; 它 接收一個確定要進行的命令的數字和(可選地)另一個參數, 常常是一個指針. 作為一個使 用 /proc 文件系統的替代, 你可以實現幾個用來調試用的 ioctl 命令. 這些命令可以從 驅動拷貝相關的數據結構到用戶空間, 這里你可以檢查它們.
這種方式使用 ioctl 來獲取信息有些比使用 /proc 困難, 因為你需要另一個程序來發出 ioctl 並且顯示結果. 必須編寫這個程序, 編譯, 並且與你在測試的模塊保持同步. 另一 方面, 驅動側代碼可能容易過需要實現一個 /proc 文件的代碼.
有時候 ioctl 是獲取信息最好的方法, 因為它運行比讀取 /proc 快. 如果在數據寫到屏 幕之前必須做一些事情, 獲取二進制形式的數據比讀取一個文本文件要更有效. 另外, ioctl 不要求划分數據為小於一頁的片段.
ioctl 方法的另一個有趣的優點是信息獲取命令可留在驅動中, 當調試被禁止時. 不象對 任何查看目錄的人(並且太多人可能奇怪"這個怪文件是什么")都可見的 /proc 文件, 不 記入文檔的 ioctl 命令可能保持不為人知. 另外, 如果驅動發生了怪異的事情, 它們仍 將在那里. 唯一的缺點是模塊可能會稍微大些.