什麼是 ioctl (Input/output control) ?

wiki : ioctl

ioctls are typically employed to allow userspace code to communicate with hardware devices or kernel components.

ioctl是應用程式用來和驅動程式溝通的function,讓應用程式可以對某個裝置下命令
在unix/linux環境中, 裝置的存取和檔案是一樣的,一般會先用open()來取得對裝置的一個控制權,其中,open會傳回一個handle值。

ioctl(handle, command, ...)

前面handle跟command是必須的,後面的參數則視情況而定。

其中handle就是open函式傳回來的值而command就是一個command code。command code每個值所代表的命令會因裝置而不同,完全由驅動程式來解釋command code的意義。若是有的command code還需要傳進其他參數時,就會使用第3、第4...個參數了。

因此使用ioctl之前, 要先看是要對那個裝置下命令,再去查那個裝置的驅動程式支援那些command code讓應用程式使用。

而當應用程式呼叫 ioctl時, 相對應的驅動程式會有一個callback function被呼叫到。這個callback function專門用來處理 ioctl command code。你呼叫ioctl時可以傳那些command code以及要傳那些參數都和此callback function有關。



相關閱讀:

Linux 驅動程式的 I/O, #1: 基本概念
Linux 驅動程式的 I/O, #2: I/O 存取相關函數
Linux 驅動程式的 I/O, #3: kernel-space 與 user-space 的「I/O」
Linux 驅動程式的 I/O, #4: fops->ioctl 實作

留言

Google Search

推薦內容橫式

本月熱門文章

鋼鐵韓粉站出來 讓韓國瑜每天唱歌喝酒好不好

黑金? 不得不提前總統馬英九大姊馬以南 吳敦義 林益世

捐款支持義大利靈醫會 一起來幫助他們 就像當初教士來台灣協助我們一樣 !!

「港版國安法」,法律將會放在《基本法》附件三在港實施,而非就《基本法》23條立法

從台灣省長宋楚瑜到台北市長柯文哲,可以說 宋楚瑜 2.0 就是柯文哲

香港事件回顧 2020/08/10 前眾志成員周庭及壹傳媒創辦人黎智英被捕 今日累計10人被捕

北京故宮首訪,一窺清宮秘史 大玉兒 & 甄嬛

除了兒福聯盟 還有其他團體是努力守護孩子們 芥菜種會愛心育幼院 及忠義育幼院 都需要大家幫忙

兒福聯盟到底多有錢?收捐款為什麼不做事情而是定存?王育敏不解釋嗎?

這個網誌中的熱門文章

Android應用開發豆知識:利用 adb 安裝 apk 到裝置上

Android 中文輸入法 官方版 ! Gboard - Google 鍵盤 開始支援注音輸入啦

Google Play 推薦Android app 誠徵App排行榜

北京故宮首訪,一窺清宮秘史 大玉兒 & 甄嬛

[家教][社會觀察] 建中教我的事 沒上建中被父母親折磨? 在建中到底是如何 ...

[FAANG面試] Amazon/AWS 領導力準則 14 Amazon Leadership Principles

Acer ICONIA Smart S300 更新後越來越好 Acer也有出手機?!

[品質控制] 什麼是Sanity test ? 軟體測試常見名詞整理 包含不同部門的測試人員負責範圍

新鮮人找工作:職場名詞解釋 AE FAE Pre-sales Post-sales