亚洲av成人无遮挡网站在线观看,少妇性bbb搡bbb爽爽爽,亚洲av日韩精品久久久久久,兔费看少妇性l交大片免费,无码少妇一区二区三区
Chinaunix
標(biāo)題:
編寫驅(qū)動(dòng)程序遇到的數(shù)的問題,然后請(qǐng)問哪里有內(nèi)核說明文檔,謝了
[打印本頁]
作者:
RYefccd
時(shí)間:
2014-11-18 19:48
標(biāo)題:
編寫驅(qū)動(dòng)程序遇到的數(shù)的問題,然后請(qǐng)問哪里有內(nèi)核說明文檔,謝了
本帖最后由 RYefccd 于 2014-11-18 20:20 編輯
剛才看的關(guān)于內(nèi)核bug的帖子,想起來半年前的課上的一個(gè)問題。想跟大家討論一下,最后要做畢業(yè)設(shè)計(jì)了,需要內(nèi)核的文檔,請(qǐng)問在哪里找?
上個(gè)學(xué)期在剛開始學(xué)習(xí)編寫驅(qū)動(dòng)時(shí),一個(gè)同學(xué)發(fā)現(xiàn)的。一般會(huì)判斷大小是否超過一頁,1024B。文件指針有一個(gè)相對(duì)位置移動(dòng)的功能,如果向反方向移動(dòng),會(huì)用當(dāng)前指針減去要移動(dòng)的位數(shù)(即s為負(fù)數(shù)),并判斷其結(jié)果是否小于1024. if(p + s < 1024 ) ........
結(jié)果if結(jié)果為假,本來只是為了程序的健壯性才做的判斷,因?yàn)閯傞_始學(xué),基本上一頁內(nèi)存的緩沖區(qū)就夠了,排除了其他可能的錯(cuò)誤,結(jié)果發(fā)現(xiàn)這里錯(cuò)了,當(dāng)時(shí)覺得很不可思議,想了很久,是因?yàn)樗鼪]有執(zhí)行減法,而是負(fù)數(shù)s被表示為它的補(bǔ)碼,是一個(gè)大于1024的數(shù)字,明白這個(gè)以后,我就先進(jìn)行判斷,如果s大于2的16次方減1,那么他就是負(fù)數(shù),手動(dòng)用2的32次方減去這個(gè)數(shù)。得到應(yīng)該向左偏移的位數(shù),再用當(dāng)前指針p減去s就可以了。
這應(yīng)該算是個(gè)bug吧,是一個(gè)同學(xué)發(fā)現(xiàn)的,她沒有用老師要求的內(nèi)核版本,不過我忘了具體的是哪一個(gè)版本。我們的就沒有這個(gè)情況,看來他們應(yīng)該更正了這個(gè)缺陷。我覺得可能是在傳遞s這個(gè)參數(shù)的時(shí)候,不小心把有符號(hào)長整參數(shù)變成了無符號(hào)數(shù)吧,不過,我不知道怎么看內(nèi)核代碼,就沒找出出錯(cuò)的點(diǎn)。不知道誰遇到過類似的情況。
作者:
Tinnal
時(shí)間:
2014-11-18 23:14
內(nèi)核沒有全面的文檔,要學(xué)就買本書吧。
作者:
humjb_1983
時(shí)間:
2014-11-19 08:33
看似類型轉(zhuǎn)換的問題吧~
文檔只有代碼doc目錄下很小的一部分,確實(shí)書上寫的最全面。
作者:
RYefccd
時(shí)間:
2014-11-19 21:40
回復(fù)
3#
humjb_1983
謝了啊,我是這么猜測的。是因?yàn)橛蟹?hào)數(shù)傳遞過程中變成了無符號(hào)數(shù),不過不能肯定。關(guān)于文檔的問題,那些寫linux的書的人的資料不是從文檔中來的嗎?我還以為有完整的說明文檔呢,網(wǎng)上找半天也沒有,內(nèi)核代碼下載的地方也沒看見,謝了啊,我去看看doc下面的。
作者:
RYefccd
時(shí)間:
2014-11-19 21:41
回復(fù)
2#
Tinnal
謝了,你們平常怎么看源碼呢?如果我想在win7下看看,有什么好的方法么?
作者:
Tinnal
時(shí)間:
2014-11-20 09:22
回復(fù)
5#
RYefccd
source insight
作者:
super皮波
時(shí)間:
2014-11-20 15:13
win下看代碼就source insight,書嘛就那么基本經(jīng)典的
1.毛德操 源碼剖析,這本書會(huì)把主要的函數(shù)講的非常細(xì)致,細(xì)致到函數(shù)中主要代碼的含義 比較適合新手看 版本2.4
2.深入理解linux內(nèi)核,側(cè)重講原理,不會(huì)大篇幅的講代碼 版本2.6
3.深入理解linux內(nèi)核架構(gòu) 和2互補(bǔ)吧,篇幅更長,比2講的稍微細(xì)致些 版本2.6
作者:
RYefccd
時(shí)間:
2014-11-20 21:38
回復(fù)
7#
super皮波
謝了,我會(huì)去看看的
作者:
RYefccd
時(shí)間:
2014-11-20 21:38
回復(fù)
6#
Tinnal
謝了,
作者:
breakCU
時(shí)間:
2014-12-05 12:35
if(p + s < 1024 ) 不要這樣寫代碼,要養(yǎng)成好習(xí)慣,即使是在貼吧里面。
作者:
folklore
時(shí)間:
2014-12-06 22:06
回復(fù)
1#
RYefccd
有無符號(hào)數(shù)對(duì)于加法是一樣的, 問題出現(xiàn)在比較上, 你將它化為有符號(hào)數(shù)再比較
作者:
魔鬼的驚嘆
時(shí)間:
2014-12-08 10:32
竟然有老師講內(nèi)核,我也想去聽。。
作者:
RYefccd
時(shí)間:
2014-12-08 15:27
回復(fù)
10#
breakCU
不好意思啊,怎么寫會(huì)好一些?有什么能夠避免這個(gè)問題的方法嗎,謝了。
歡迎光臨 Chinaunix (http://www.72891.cn/)
Powered by Discuz! X3.2