我想讀一下包含塊位圖,inode位讀取磁盤塊作爲位圖
我讀了塊作爲一個無符號的字符數組 比我將其轉換爲二進制如下塊:
for (i = 0; i < 4096; i++) {
for (j = 8; j <=0 ; j--) {
bits[j] = bitmap[i]%2;
bitmap[i] = bitmap[i]/2;
}
for(t=0; t<8;t++)
printf("%d\t",bits[t]);
printf("\n");
}
當我把 '0' 爲char並打印爲
printf("%d",'0');
我得到48 和我的位陣列包含00110000 該作品,但是當我檢查inode位 它不工作 例如一個位圖:
但我得到我無法檢查塊位圖是否發生同樣的情況。
要重複,代碼工作正常對話,例如它打印00110000這是48,爲字符'0'打印48也。這種交換與inode位圖一起發生。 當我改變它將適用於inode位圖,但我現在怎麼可以爲blok位圖工作。這將修復代碼,但邏輯錯誤。
任何想法?
你的循環有點不對。也許'for(j = 7; j> = 0; - j)'。 – ssteinberg 2011-05-13 21:44:25