[問題] fwrite的問題..
今天寫檔發現一個問題...
譬如我要對一檔案重複寫兩次, 第一次寫了 120 Byte
在第二次開始前我先使用 rewind讓pointer回到檔頭, 然後
在在寫100Byte...
那現在我再用 fclose將檔案關閉,, 請問這個檔案會多出後面的20Byte嗎?
有甚麼方法能夠在寫第二次前先將檔案的size歸零再繼續寫嗎?
謝謝!
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 59.127.201.105
推
10/28 22:47, , 1F
10/28 22:47, 1F
ftruncate我試過, 可是他第一個參數是要 int fd,
我使用fopne產生的事一個 FILE *, 這樣子應該是不能使用此API吧?
推
10/28 22:48, , 2F
10/28 22:48, 2F
推
10/28 22:51, , 3F
10/28 22:51, 3F
請問意思是說寫第二次時, 在使用
fopen("", "w"); 一次嗎?
因為這是在Embedded上跑的, cpu只有300Mhz因此會擔心效能問題
所以想問有沒有更好的方法, 謝謝!
※ 編輯: pilipalabon 來自: 59.127.201.105 (10/28 23:15)
※ 編輯: pilipalabon 來自: 59.127.201.105 (10/28 23:17)
推
10/28 23:35, , 4F
10/28 23:35, 4F
→
10/29 08:09, , 5F
10/29 08:09, 5F
推
10/29 08:12, , 6F
10/29 08:12, 6F
請問ftruncate的用法可以 ftruncate(fd, 0)
把檔案先恢復到跟一開始fopen一樣,然後再使用
fwrite寫檔, 這樣子可以嗎? 因為看man好像是說
ftruncate 所指定的size後都會被當垃圾, 所以會造成之後
fwrite所寫的資料都是無效的嗎?
另外上面有建議說在使用fopen一次,請問可以不fclose就
fopen嗎? 謝謝
※ 編輯: pilipalabon 來自: 59.127.197.35 (10/29 09:15)
※ 編輯: pilipalabon 來自: 59.127.197.35 (10/29 09:23)
C_and_CPP 近期熱門文章
PTT數位生活區 即時熱門文章