實驗四 檔案系統
一、實驗目的
1、熟悉linux檔案系統的檔案和目錄結構,掌握linux檔案系統的基本特徵;
2、模擬實現linux檔案系統的簡單i/o流操作:備份檔案。
二、實驗內容
1、瀏覽linux系統根目錄下的子目錄,熟悉每個目錄的檔案和功能;
2、設計程式模擬實現linux檔案系統的簡單i/o流操作:備份檔案。
3、利用c庫函式fopen(), fread(), fwrite(), fclose() 來實現簡單的檔案備份, 即將乙個檔案的內容拷貝到另乙個檔案中去。
三、實驗流程圖
首先要建立乙個的原檔案和備份的檔案,這裡以txt為字尾名建立
下面是我的檔案內容11.txt為原檔案,22.txt為備份檔案
四:源**
#include
#include
#include
#define buf_size 4396
#define src_path "11.txt"
#define dst_path "22.txt"
intmain
(void
)elseif(
!backup)
else
// 備份
start =
clock()
;// 開始計時
int t =0;
while
(fread
(buf, buf_size,
1, source)==1
)fseek
(source, buf_size*t,
seek_set);
// 重定位
ret =
fread
(buf,
1, buf_size, source)
;fwrite
(buf,
1, ret, backup)
; end =
clock()
;// 結束計時if(
fclose
(source)
)elseif(
fclose
(backup)
)else
time =((
double
)(end - start)
/ clocks_per_sec)
;printf
(, time)
;}
五、實驗結果
為了方便觀察備份情況,輸出開啟和關閉過程成功,用clock()函式記錄備份過程的時間,執行結果如下。
開啟備份檔案,可以觀察到原檔案內容備份到備份檔案中。
六、使用系統呼叫函式實現檔案備份
要求:使用系統呼叫函式open(),read(),write(),close()實現簡單檔案備份
由於原理類似,這裡直接展示源**
#include
#include
#include
#include
#include
#include
#define buf_size 4396
#define src_path "11.txt"
#define dst_path "22.txt"
intmain
(void
)else
if(backup ==-1
)else
// 備份
while
((ret =
read
(source, buf, buf_size))!=
0)else
int status =
write
(backup, buf, ret);if
(status ==-1
)else}if
(close
(source)==-
1)elseif(
close
(backup)==-
1)else
}
說說IO(四) 檔案系統
檔案系統各有不同,其最主要的目標就是解決磁碟空間的管理問題,同時提供高效性 安全性。如果在分布式環境下,則有相應的分布式檔案系統。linux上有ext系列,windows上有fat和ntfs。如圖為乙個linux下檔案系統的結構。其中vfs virtual file system 是linux ke...
說說IO(四) 檔案系統
檔案系統各有不同,其最主要的目標就是解決磁碟空間的管理問題,同時提供高效性 安全性。如果在分布式環境下,則有相應的分布式檔案系統。linux 上有 ext 系列,windows 上有 fat 和 ntfs 如圖為乙個 linux 下檔案系統的結構。其中 vfs virtual file system...
說說IO(四) 檔案系統
linux cache 資料結構 檔案系統各有不同,其最主要的目標就是解決磁碟空間的管理問題,同時提供高效性 安全性。如果在分布式環境下,則有相應的分布式檔案系統。linux上有ext系列,windows上有fat和ntfs。如圖為乙個linux下檔案系統的結構。其中vfs virtual file...