ios app與ios ate的區別

2022-04-11 06:31:34 字數 1378 閱讀 4086

檔案流

ios::ate

開啟方式

結果

開啟方式

結果

ofstream

(預設是ios::in | ios::trunc)

如果沒有檔案,生成空檔案;

如果有檔案,在檔案尾追加

ios::ate或ios::ate|ios::out

如果沒有檔案,生成空檔案;

如果有檔案,清空該檔案

不管有沒有檔案,都是失敗

ios::ate|ios::in

如果沒有檔案,開啟失敗;

如果有檔案,定位到檔案尾,可以寫檔案,但是不能讀檔案

ifstream

(預設是ios::in)

不管有沒有檔案,都是失敗

ios::ate或ios::ate|ios::out

如果沒有檔案,開啟失敗;

如果有檔案,定位到檔案尾,但是不能寫檔案

ios::ate|ios::in

fstream

(預設是ios::in | ios::out)

如果沒有檔案,建立檔案;

如果有檔案,在檔案尾追加

ios::ate|ios::out

如果沒有檔案,建立檔案;

如果有,清空檔案

如果沒有檔案,失敗

ios::ate|ios::in

如果沒有檔案,失敗

n/an/aios::ate|ios::out|ios::in

如果沒有檔案,開啟失敗,

如果有檔案,定位到檔案尾

總結

但可以和ios::out配合,開啟輸入流

ios::ate可以和ios::in配合,此時定位到檔案尾;

如果沒有ios::in相配合而只是同ios::out配合,那麼將清空原檔案;

區別

而ate模式則只在開啟時才將寫指標置於檔案末尾。在檔案操作過程中,可以通過seekp等操作移動指標位置。

例子:

多個執行緒或者程序對乙個檔案寫的時候,假如檔案原來的內容是abc

第乙個執行緒(程序)往裡面寫了個d,第二個執行緒(程序)寫了個e的話,結果是abcde

以ios:ate:

後面寫的會覆蓋前面乙個寫的,第乙個執行緒(程序)往裡面寫了個d,第二個執行緒(程序)寫了個e的話,結果為abce

參考:ofstream與ate的故事

ios app與ios ate的區別

檔案流 ios ate 開啟方式 結果 開啟方式 結果 ofstream 預設是 ios in ios trunc 如果沒有檔案,生成空檔案 如果有檔案,在檔案尾追加 ios ate或ios ate ios out 如果沒有檔案,生成空檔案 如果有檔案,清空該檔案 不管有沒有檔案,都是失敗 ios ...

iOS App 版本的定義

build build編號 bundle version in xcode。cfbundleversion in info.plist 選用乙個正整數來表示build 每構建 提測一次,這個數字就加1。如 上次構建 提測為1,則本次就是2,下次就是3。沒有特別說明,bundle version 這個...

iOS App 簽名的原理

數字簽名的作用是我對某乙份資料打個標記,表示我認可了這份資料 籤了個名 然後我傳送給其他人,其他人可以知道這份資料是經過我認證的,資料沒有被篡改過。首先用一種演算法,算出原始資料的摘要。需滿足 a.若原始資料有任何變化,計算出來的摘要值都會變化。b.摘要要夠短。這裡最常用的演算法是md5。生成乙份非...