共用方式為


文字和二進位資料流

文字資料流是由一或多行可寫入到文字導向顯示器以便供讀取的文字所組成。 從文字資料流程讀取時,程式會在每一行結尾讀取分行符號。 寫入文字資料流程時,程式會寫入分行符號,以向行尾發出訊號。 為符合目標環境中表示檔案中之文字的不同慣例,程式庫函式可以修改在程式與文字資料流之間傳輸的字元數目與表示數目。

文字資料流程內的位置有限。 您可以呼叫 fgetposftell 來取得目前的檔案位置指標。 您可以呼叫 fsetposfseek ,將文字資料流程放置在以這種方式取得的位置,或在資料流程的開頭或結尾放置文字資料流程。 不支援對位置進行任何其他變更。

為了達到最大可攜性,程式不應該寫入:

  • 空檔案。
  • 行尾的空白字元。
  • 部分行(藉由省略檔案結尾的分行符號)。
  • 可列印字元、分行符號和水準索引標籤以外的字元。

如果您遵循這些規則,您從文字資料流程讀取的字元序列會與您寫入的字元序列相符,不論是位元組或多位元組字元。 否則,若當您關閉檔案時該檔案是空的,程式庫函式可以移除您建立的檔案。 或者,他們可以改變或刪除寫入檔案的字元。

二進位資料流由一或多個位元組的任意資訊所組成。 您可以將儲存在任意物件中的值寫入到 (位元組導向) 二進位資料流,並以與寫入時相同的方式讀取。 程式庫函式不會改變您在程式與二進位資料流程之間傳輸的位元組。 不過,它們可以將任意數目的 NULL 位元組附加至您使用二進位資料流程寫入的檔案。 程式必須在二進位資料流程結尾處理這些額外的 NULL 位元組。

除了相對於資料流程結尾的位置之外,二進位資料流程中的位置是妥善定義的。 就像文字資料流一樣,您可以取得並修改目前的檔案位置指標。 所使用的位移 ftell ,並 fseek 計算資料流程開頭的位元組數(也就是位元組零),因此這些位移上的整數算術會產生可預測的結果。

位元組資料流會將檔案視為位元組順序。 在程式中,資料流看起來會像相同的位元組順序,但上面所述的可能修改除外。

另請參閱

檔案和資料流程