實驗四 檔案系統

2021-10-08 01:13:23 字數 2399 閱讀 5698

實驗四 檔案系統

一、實驗目的

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...