亚洲av成人无遮挡网站在线观看,少妇性bbb搡bbb爽爽爽,亚洲av日韩精品久久久久久,兔费看少妇性l交大片免费,无码少妇一区二区三区

Chinaunix

標(biāo)題: 讀設(shè)備文件出現(xiàn)死循環(huán)! [打印本頁]

作者: liuhuizhangyi    時(shí)間: 2008-09-25 15:32
提示: 作者被禁止或刪除 內(nèi)容自動(dòng)屏蔽
作者: dreamice    時(shí)間: 2008-09-25 15:55
你確定你的寫操作已經(jīng)完成了才讀的?你查到的死循環(huán)是在什么地方?
作者: liuhuizhangyi    時(shí)間: 2008-09-25 16:03
提示: 作者被禁止或刪除 內(nèi)容自動(dòng)屏蔽
作者: dreamice    時(shí)間: 2008-09-25 16:38
你這個(gè)驅(qū)動(dòng)有一個(gè)很大的問題,你寫進(jìn)去的數(shù)據(jù),到底放哪里了?你驅(qū)動(dòng)的buf在哪里定義的?
作者: ryancat    時(shí)間: 2008-09-25 16:43
能把strace的信息貼出來嗎,只貼最后的read,write那部分.

[ 本帖最后由 ryancat 于 2008-9-25 16:48 編輯 ]
作者: liuhuizhangyi    時(shí)間: 2008-09-25 16:49
提示: 作者被禁止或刪除 內(nèi)容自動(dòng)屏蔽
作者: ryancat    時(shí)間: 2008-09-25 16:53
操作的那個(gè)端口是干什么的?驅(qū)動(dòng)的目的不了解
作者: liuhuizhangyi    時(shí)間: 2008-09-25 16:56
提示: 作者被禁止或刪除 內(nèi)容自動(dòng)屏蔽
作者: ryancat    時(shí)間: 2008-09-25 17:02
標(biāo)題: 回復(fù) #8 liuhuizhangyi 的帖子
你的read.c的代碼是不是貼錯(cuò)了,里面沒有一個(gè)循環(huán)啊?但是strace顯示你調(diào)用了很多次read
作者: ryancat    時(shí)間: 2008-09-25 17:05
你驅(qū)動(dòng)的read函數(shù)發(fā)現(xiàn)緩沖區(qū)沒有數(shù)據(jù)的時(shí)候應(yīng)該返回0,表示文件結(jié)束.其他時(shí)候也應(yīng)該返回實(shí)際讀取的數(shù)目,而不都是count.
作者: liuhuizhangyi    時(shí)間: 2008-09-25 17:09
提示: 作者被禁止或刪除 內(nèi)容自動(dòng)屏蔽
作者: liuhuizhangyi    時(shí)間: 2008-09-25 17:10
提示: 作者被禁止或刪除 內(nèi)容自動(dòng)屏蔽
作者: ryancat    時(shí)間: 2008-09-25 17:11
如果read.c是原封不動(dòng)貼上來的話,"byte=read..."那行還缺少個(gè)分號(hào),編不過的吧
作者: liuhuizhangyi    時(shí)間: 2008-09-25 17:12
提示: 作者被禁止或刪除 內(nèi)容自動(dòng)屏蔽
作者: ryancat    時(shí)間: 2008-09-25 17:14
原帖由 liuhuizhangyi 于 2008-9-25 17:12 發(fā)表


就這里我不是很明白,不知道他問什么老讀個(gè)沒完



所以我感覺代碼改過了,你重新編譯下再試試,加點(diǎn)調(diào)試信息
作者: liuhuizhangyi    時(shí)間: 2008-09-25 17:16
提示: 作者被禁止或刪除 內(nèi)容自動(dòng)屏蔽
作者: ryancat    時(shí)間: 2008-09-25 17:19
原帖由 liuhuizhangyi 于 2008-9-25 17:16 發(fā)表
很是對(duì)不起大家 剛才不知道把讀那塊while給刪了


那修改下驅(qū)動(dòng)的read,文件結(jié)束返回0就不會(huì)一直讀了.
作者: liuhuizhangyi    時(shí)間: 2008-09-25 17:19
提示: 作者被禁止或刪除 內(nèi)容自動(dòng)屏蔽
作者: ryancat    時(shí)間: 2008-09-25 17:22
原帖由 liuhuizhangyi 于 2008-9-25 17:19 發(fā)表


還是那樣  是不是驅(qū)動(dòng)程序有問題
加入我把那個(gè)設(shè)備文件/dev/aaa 換成一個(gè)普通的文本文件就沒有這種現(xiàn)象


你驅(qū)動(dòng)的read沒有判斷緩沖區(qū)還有沒有數(shù)據(jù),每次都返回的要讀的個(gè)數(shù).也就是認(rèn)為文件一直都有數(shù)據(jù),讀不完,不知道這是不是你驅(qū)動(dòng)的本意.
作者: ryancat    時(shí)間: 2008-09-25 17:26
要么你的驅(qū)動(dòng)保存一個(gè)文件的size.
在write的時(shí)候修改它,讀的時(shí)候發(fā)現(xiàn)讀了size個(gè)了就返回0,表示文件結(jié)束.否則讀端口會(huì)一直都有數(shù)據(jù)的.
作者: liuhuizhangyi    時(shí)間: 2008-09-25 17:30
提示: 作者被禁止或刪除 內(nèi)容自動(dòng)屏蔽
作者: liuhuizhangyi    時(shí)間: 2008-09-26 08:12
提示: 作者被禁止或刪除 內(nèi)容自動(dòng)屏蔽
作者: ryancat    時(shí)間: 2008-09-26 09:57
原帖由 liuhuizhangyi 于 2008-9-26 08:12 發(fā)表
再?zèng)]有人理我了?  那我還是自己琢磨琢磨吧
不過還是得謝謝樓上各位大俠


樓上的樓上我給了建議了啊,就是自己保存一個(gè)文件的長(zhǎng)度,用來描述寫的時(shí)候?qū)懥硕嗌賯(gè)字節(jié).這樣讀的時(shí)候就知道讀多少次端口就結(jié)束了.
至于寫0到256就不會(huì)死循環(huán),我覺得和你寫的測(cè)試代碼有關(guān).當(dāng)前的代碼還是會(huì)死循環(huán)的.




歡迎光臨 Chinaunix (http://72891.cn/) Powered by Discuz! X3.2