檔案結束是什麼判斷的

2021-07-02 17:34:36 字數 703 閱讀 3684

檔案的結束判斷與檔案的內容無關,與檔案是文字還是二進位制格式無關,檔案內容中更不含有所謂的檔案結束標誌;檔案的結束與否是通過檔案在磁碟上儲存的檔案結構等資訊來獲知的,與其所使用的檔案系統有關。

windows和linux系統對於檔案結尾的判斷採取不同的方式:基於檔案結束標誌(如windows的fat檔案系統)的判斷方式或者基於檔案長度(如linux的ext2、ext3檔案系統)的判斷方式。

磁碟檔案的基本儲存單位不是位元組,在windows中是簇(cluster),在linux中叫塊(block)。在每個磁碟分割槽上都有一塊專門的區域記錄它們的使用情況。每個檔案都是一系列簇或者塊的有序集合。

在windows中,檔案採用鏈式儲存方式。檔案的起始簇的位置被記錄在目錄區中,從這個起始簇的簇號可以知道下乙個簇的位置(通過fat),依次類推,直到下乙個簇的簇號是檔案的結束標誌為止。

與windows不同,linux檔案的資訊儲存在inode結構中,記錄著包括檔案長度、組成檔案的塊的有序集合等資訊。通過檔案長度以及塊的大小,能夠計算出塊的實際數目m。上述集合中的前m個有序塊組成的子集就是檔案的實際內容。顯然,超出這個子集的最後乙個塊的檔案訪問就被feof()視為到了檔案末尾。

這是和檔案系統相關的,補充一下在fat檔案系統中,表示檔案結束 ,在fat12檔案系統中如果簇號大於0x0ff8,表示結束;在fat16檔案系統中簇號大於0xffff8,表示檔案結束;在fat32 中,簇號大於0xfffffff8,表示檔案結束

feof判斷檔案結束

fgets 是讀取檔案中的一行,當讀檔案過程中發生錯誤或者讀到檔案尾時,返回null,所以不能使用fgets null來判斷是否到了檔案尾,需要結合feof null 才能確定是否到了檔案尾 while feof fp fgets temp,100,fp operation temp 這種判斷是否到...

軟體測試結束的標準是什麼?如何判斷進入驗收階段?

目錄 十個原則確定軟體測試結束的標準 單元測試退出標準 整合測試退出標準 系統測試退出標準 在軟體消亡之前,如果沒有測試的結束點,那麼軟體測試就永無休止,永遠不可能結束。軟體測試的結束點,要依據自己公司具體情況來制定,不能一概而論!個人認為測試結束點由以下幾個條件決定 1 基於 測試階段 的原則 每...

軟體測試結束的標準是什麼??

1 單元測試用例設計已經通過評審 2 核心 100 經過code review 3 單元測試功能覆蓋率達到100 4 單元測試 行覆蓋率不低於80 5 所有發現缺陷至少60 都納入缺陷追蹤系統且各級缺陷修復率達到標準 6 不存在a b類缺陷 7 c d e類缺陷允許存在 8 按照單元測試用例完成了所...