檔案 檔案系統

2021-08-07 04:39:23 字數 1890 閱讀 7035

一、檔案型別

二、外存和記憶體

1.外存:如磁碟(如機械硬碟,固態硬碟[速度快])、磁帶、cd,外存速度慢,掉電保護

2.記憶體,速度快,掉電不保護,速度越快,**越貴

三、檔案的輸入和輸出

1.以記憶體為參照物,流入記憶體,叫做輸入

2.檔名是檔案的唯一標識   唯一指的是全路徑

3.windows下檔名不區分大小寫

4.字尾名:關聯預設開啟它的應用程式,不會改變檔案的內容

5.wma,ape,flac:無損**,很大:20m、30m ,如cd

***:有損**     320 128 64   越高保真度越高

每種**的編碼不一樣,解碼就不一樣

6.ape的字尾名改為txt,怎麼還能正常開啟此**?

在每個檔案的開頭,有個魔術的概念,魔術的作用是檔案的自我介紹

四、網盤

1.儲存非法的檔案,網盤上就找不到它了,因為網盤會窺視你的檔案,從而判斷你的檔案是否合法

2.快取:用在高速裝置和低速裝置的過渡,比如磁碟和記憶體之間      

磁碟《--》快取(10m、20m)《--》記憶體《--》cpu快取

3.緩衝:用在流**裡

4.虛擬記憶體:磁碟的一部分,將等待的程序放在磁碟裡,以備替換記憶體裡的程序,速度慢     速度越快,**越貴,生產工藝越難

5.移動裝置的概念

rom:磁碟  平常所說的64g,32g的手機,相當於固態硬碟

ram:記憶體  比如手機記憶體2/4g

五、檔案系統

1.檔案系統:管理檔案的管家

(1)微軟最新的檔案系統:ntfs

(2)windowsxp、優盤的檔案系統:fat32

(3)linux的檔案系統:ext3、ext4

2.檔案系統特點:放得多、高效、安全

高效:檔案系統有好的,也有一般的,檔案系統有快取區,快取:提高了速度

安全:比如某一磁軌、磁碟壞了,其它的還可以用

3.檔案操作易錯點:開啟檔案失敗,原因:檔名錯誤

#include

#include

#include

void filecopy(const char *despath,const char *srcpath)

fclose(fr); //關閉檔案

fclose(fw); }

int main()

fseek(fp,0l,seek_end);/*利用fseek函式將指標定位在檔案結尾的位置*/

cnt=ftell(fp);/*利用ftell函式返回指標相對於檔案開頭的位置,以位元組計算*/

printf("檔案所佔的位元組數為%ld個\n",cnt);/*進行輸出*/

}

六、一些小知識

不安全問題:陣列可能越界,如strcpy函式

strcpy_s();//c99,c11建議函式,所以gcc裡沒有這個函式

char *str1 = "abcde";//4b  它是個字串常量,所以不能修改它的值

char str2 = "abcde";//6b  它是個字串陣列

str1 = str2;//這樣str1就不會崩潰了,因為str1是乙個指標,現在讓str1指向str2了,所以就可以修改str1的值了

str1[0] = 'x';

str2[0] = 'x';

要想修改字串的值,一定把它置成陣列

檔案系統 why檔案系統

為什麼需要檔案系統,可否由作業系統直接寫裸裝置?裸裝置是一種沒有經過格式化的磁碟或分割槽,即讓作業系統直接管理操作磁碟設定,進行資料讀寫等。通過檔案系統的方式組織磁碟儲存和資料管理有很多好處,比如 1.資料讀取 管理等操作變得簡單便捷 檔案系統給使用者提供了乙個簡單的操作介面,只需簡單的操作就能實現...

檔案系統 檔案系統的架構

vfs是具體檔案系統的抽象,依靠超級塊 inode dentry以及檔案這些結構來發揮作用,檔案系統的架構就體現在這些結構的使用方式中。1 超級塊作用分析 1 2 所有的dentry都指向乙個dentry hashtable dentry hashtable是乙個樹組,每乙個樹組成員都是hash鍊錶...

檔案系統 編寫檔案系統

8.5 編寫乙個檔案系統 如果寫乙個實際檔案系統,但是涉及的東西太多,不容易簡明扼要的理解檔案系統的實現。linux核心中提供的romfs檔案系統是個非常理想的例子,既有實際應用架構,也清晰明了,故以romfs為例項分析檔案系統的實現。一 linux檔案系統的實現要素 編寫新檔案系統涉及一些基本物件...