2010年1月16日 星期六

HW3

這次作業的主題是有關 fopen,,fseek,fread 這幾項指令
首先是我的程式結果

HW3-1

由於我的程式是照著同學的教學一步一步做出來的
所以其實對於指令的作用在幹嘛不是非常清楚…
為此我特別上網研究了一下這三個指令

---------------- 分隔線 ----------------

fopen:
開啟檔案或者 URL。
語法:
int fopen(string filename, string mode);
傳回值: 整數
函式種類: 檔案存取

這個指令主要是是用來開啟檔案用,也可以用來開啟網頁。它是將內部游標移動到欲開啟的檔案處做開啟的。由他的指令語法我們可以知道,藉由輸入正確的檔案名稱即可開檔。後面的mode是所謂的開啟模式,輸入不同的代號有不同的開啟方式。

  • 'r' 開檔方式為唯讀,檔案指標指到開始處。
  • 'r+' 開檔方式為可讀寫,檔案指標指到開始處。
  • 'w' 開檔方式為寫入,檔案指標指到開始處,並將原檔的長度設為 0。若檔案不存在,則建立新檔。
  • 'w+' 開檔方式為可讀寫,檔案指標指到開始處,並將原檔的長度設為 0。若檔案不存在,則建立新檔。
  • 'a' 開檔方式為寫入,檔案指標指到檔案最後。若檔案不存在,則建立新檔。
  • 'a+' 開檔方式為可讀寫,檔案指標指到檔案最後。若檔案不存在,則建立新檔。
  • 'b' 若作業系統的文字及二進位檔不同,則可以用此參數,UNIX 系統不需要使用本參數。

fseek:
移動檔案指標。
語法:
int fseek(int fp, int offset);
傳回值: 整數
函式種類: 檔案存取

這個指令是移動內部檔案的游標,藉由移動游標改變讀取位置。但如果由fopen開啟網址類的檔案,此指令不能用。

fread:
元組的方式讀取檔案。
語法:
string fread(int fp, int length);
傳回值: 字串
函式種類: 檔案存取

此指令輸入後可以讀指定長度的位元組或直接讀到檔案結尾。

---------------- 分隔線 ----------------

這三個指令其實就大概是這樣。不過,這類型的指令不只這三個。還有flock(鎖住檔案)、fpassthru(輸出所有剩餘資料)、fputs(寫到檔案指標)、fwrite(二進位位元方式寫入檔案)...等等。似乎這類型 f 開頭的指令都是在進行檔案的存取,不論讀取或輸出。

沒有留言:

張貼留言