音視頻 day19 對 C 語言中的 IO 概念回顧

1. C 語言中的文件是什麼?

  • 咱們對文件的概念已經很是熟悉了,好比場景的 Word 文檔、txt 文件、源文件等。文件是數據源的一種,最主要的做用的是保存數據。
  • 在操做系統中,爲了統一對各類硬件的操做,簡化接口,不一樣的硬件設備也都被當作一個文件。對這些硬件的操做,等同於對磁盤上普通文件的操做。

2. 文件操做的正確流程是什麼(三大步驟)?讀取文件有哪兩種主流讀法?

  • 打開文件 --> 讀寫文件 --> 關閉文件
  • 文件的兩種主流讀寫方式:①能夠一個字符一個字符的讀取 ②也能夠讀取一整行

3. 什麼是文件流?什麼是輸入流?什麼是輸出流?

在 《載入內存,讓程序運行起來》一文中提到,全部的文件(保存在磁盤)都要載入內存才能處理,全部的數據必須寫入文件(磁盤)纔不會丟失。markdown

  • 數據在文件和內存之間的傳遞過程叫作文件流,相似水從一個地方流動到另外一個地方。
  • 數據從文件複製到內存的過程叫作輸入流
  • 從內存保存到文件的過程叫作輸出流

4. 在 C 語言中若是要改變讀取或者寫入文件的位置,有哪兩個函數?

  • void rewind ( FILE *fp ); 將位置指針移動到文件開頭
  • int fseek ( FILE *fp, long offset, int origin ); 將位置指針移動到任意位置

5. C 語言如何獲取文件大小(瞭解)?

  • C 語言沒有提供獲取文件大小的函數,想要實現該功能,必須本身編寫函數。
long fsize(FILE *fp){
 long n;
 fpos_t fpos;  //當前位置
 fgetpos(fp, &fpos);  //獲取當前位置
 fseek(fp, 0, SEEK_END); // 讓文件內部指針(位置指針)移動到文件末尾
 n = ftell(fp); // ftell() 函數用來獲取文件內部指針(位置指針)距離文件開頭的字節數
 fsetpos(fp,&fpos);  //恢復以前的位置
 return n;
}
複製代碼
相關文章
相關標籤/搜索