回覆列表
  • 1 # 使用者834195712159

    這些都是C語言開啟檔案函式fopen的一個引數開檔案方式的值:

    定義函式 FILE * fopen(const char * path,const char * mode);

    函式說明 引數path字串包含欲開啟的檔案路徑及檔名,引數mode字串則代表著流形態。

    mode有下列幾種形態字串: r 開啟只讀檔案,該檔案必須存在。

    r+ 開啟可讀寫的檔案,該檔案必須存在。

    rb+ 讀寫開啟一個二進位制檔案,只允許讀寫資料。

    rt+ 讀寫開啟一個文字檔案,允許讀和寫。

    w 開啟只寫檔案,若檔案存在則檔案長度清為0,即該檔案內容會消失。若檔案不存在則建立該檔案。

    w+ 開啟可讀寫檔案,若檔案存在則檔案長度清為零,即該檔案內容會消失。若檔案不存在則建立該檔案。

    a 以附加的方式開啟只寫檔案。若檔案不存在,則會建立該檔案,如果檔案存在,寫入的資料會被加到檔案尾,即檔案原先的內容會被保留。

    a+ 以附加方式開啟可讀寫的檔案。若檔案不存在,則會建立該檔案,如果檔案存在,寫入的資料會被加到檔案尾後,即檔案原先的內容會被保留。

    wb 只寫開啟或新建一個二進位制檔案;只允許寫資料。

    wb+ 讀寫開啟或建立一個二進位制檔案,允許讀和寫。

    wt+ 讀寫開啟或著建立一個文字檔案;允許讀寫。

    at+ 讀寫開啟一個文字檔案,允許讀或在文字末追加資料。

    ab+ 讀寫開啟一個二進位制檔案,允許讀或在檔案末追加資料。

    上述的形態字串都可以再加一個b字元,如rb、w+b或ab+等組合,加入b 字元用來告訴函式庫開啟的檔案為二進位制檔案,而非純文字檔案。不過在POSIX系統,包含Linux都會忽略該字元。

    由fopen()所建立的新檔案會具有S_IRUSR|S_IWUSR|S_IRGRP|S_IWGRP|S_IROTH|S_IWOTH(0666)許可權,此檔案許可權也會參考umask 值。

  • 中秋節和大豐收的關聯?
  • 為什麼夏天色斑會加重?如何祛斑?