指程式與資料的互動是以流的形式進行的。進行c語言檔案的訪問時,都會先進行「開啟檔案」操作,這個操作就是在開啟資料流,而「關閉檔案」操作就是關閉資料流。
指在程式執行時,所提供的一塊儲存空間(在記憶體中),可用來暫時存放做準備執行的資料。它的設定是為了提高訪問效率,因為記憶體的訪問速度比磁碟驅動器快得多。
c語言的檔案處理功能依據系統是否設定「緩衝區」分為兩種:一種是設定緩衝區,另一種是不設定緩衝區。由於不設定緩衝區的檔案處理方式,必須使用較低階別的v/o函式(包含在標頭檔案io.h和fcnt.h中)來直接對磁碟訪問,這種方式的訪問速度慢,並且由於不是c的標準函式,跨平台操作時容易出問題。下面只介紹第一種處理方式,即設定緩衝區的檔案處理方式。
當使用標準io函式(包含在標頭檔案stdio.h中)時,系統會自動設定緩衝區,並通過資料流來讀寫檔案。當進行檔案讀取時,不會直接對磁碟進行讀取,而是先開啟資料流,將磁碟上的檔案資訊拷貝到緩衝區內,然後程式再從緩衝區中讀取所需資料。
分為文字檔案和二進位制檔案兩種。
文字檔案是以字元編碼的方式進行儲存的。二進位制檔案將記憶體中資料原封不至檔案中,適用於非字元為主的資料。如果以記事本開啟,只會看到一堆亂碼。
其實,除了文字檔案外,所有的資料都可以算是二進位制檔案。二進位制檔案的優點在於訪問速度快,占用空間小,以及可隨機訪問資料。
包括順序訪問方式和隨機訪問方式兩種。
隨機訪問方式多半以二進位制檔案為主。它會以乙個完整的單位來進行資料的讀取和寫入,通常以結構為單位。
檔案操作:以後講解
通常把顯示器稱為標準輸出檔案,printf就是向這個檔案輸出資料;通常把鍵盤稱為標準輸入檔案,scanf 就是從這個檔案讀取資料。
下面為常見硬體裝置所對應的檔案檔案
硬體裝置
stdin
標準輸入檔案,一般指鍵盤scanf()、getchar()等函式預設從stdin獲取輸入
stdout
標準輸出檔案,一般指顯示器printf()、putchar()等函式預設向stdout輸出資料
stderr
標準錯誤檔案,一般指顯示器perror()等函式預設向stderr獲取輸出資料
stdprn
標準列印檔案,一般指印表機
我們不去**硬體裝置是如何被對映成檔案的,在c語言中硬體裝置可以看成檔案,有些輸入輸出函式不需要你指明到底讀寫哪個檔案,系統已經為它們設定了預設的檔案。
在預設情況下,stdout是行緩衝的,他的輸出會放在乙個buffer裡面,只有到換行的時候,才會輸出到螢幕。而stderr是無緩衝的,會直接輸出。
C語言基礎之檔案
意義 解決多檔案編譯模組化的問題 格式 main 目標 main.0 依賴 乙個tab gcc main.o o main 命令 makefile檔名必須為makefile或者makefile,其餘檔名要使用make f 檔名命令告訴系統去哪找makefile檔案 gcc命令 gcc c 編譯到目標...
C語言基礎(檔案管理)
乙個檔案,無論它是文字檔案還是二進位制檔案,都是代表了一系列的位元組。c 語言不僅提供了訪問頂層的函式,也提供了底層 os 呼叫來處理儲存裝置上的檔案 可以使用fopen 函式來建立乙個新的檔案或者開啟乙個已有的檔案,這個呼叫會初始化型別file的乙個物件,型別file包含了所有用來控制流的必要的資...
C基礎 標準C語言標頭檔案
標準c語言標頭檔案 iso c標準定義的標頭檔案 24項 驗證程式斷言 支援複數算術運算 字元型別 出錯碼 浮點環境 浮點常量 整型格式轉換 替代關係操作符巨集 實現常量 區域性類別 數學常量 非區域性goto 訊號 可變參數列 布林型別和值 標準定義 整型 標準i o庫 實用程式庫函式 字串操作 ...