2
我正在寫一個Linux misc_device驅動程序,並且遇到讀取問題。目前內核認爲驅動程序是一個快速設備:驅動程序讀取被緩衝,直到用戶空間調用程序所需的數據(例如從磁盤讀取文件時)爲止。這意味着讀取系統調用不會返回,直到緩衝區已滿。我想改變這種行爲,並告訴內核在有數據可用時立即返回系統調用(就像在套接字上讀取數據一樣)。無緩衝misc_device讀取-linux內核驅動程序
可能嗎?怎麼樣?我完全錯了嗎?
謝謝!
不知道,如果你仍然有興趣在這個問題的9條周以後,但:你確定阻塞在內核中發生的事情?我的回憶是,驅動程序的工作是檢查結構文件f_flags中的O_NONBLOCK,並在必要時阻止等待輸入。否則,如果沒有設置O_NONBLOCK,它應該在每次讀取調用時讀取儘可能多的數據並立即返回,並且當讀取調用最終發生時,根本沒有數據要讀取時,返回0字節來告訴調用者停止。設置O_NONBLOCK或不是用戶空間的工作。 – michaeljt