[問題] 怎麼把 FILE 讀入後刪掉第一行

看板C_and_CPP (C/C++)作者 (大龜)時間16年前 (2010/05/24 22:29), 編輯推噓1(108)
留言9則, 5人參與, 最新討論串1/1
遇到的問題: (題意請描述清楚) 我想用fopen打開一個檔案,用fprintf寫完以後,檢查檔案大小 如果太大,就把最前面的幾行刪掉 請問 1. 要怎麼去刪掉前面幾行 2. 要怎麼計算檔案大小,用fseek移到檔尾看 offset嗎? 謝謝 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 220.128.79.49

05/24 22:32, , 1F
1.你寫之前就要先判斷有沒有太大, 有的話再寫少一點
05/24 22:32, 1F

05/24 22:33, , 2F
檔案本身是log檔,所以新的進來,就把舊的刪掉
05/24 22:33, 2F

05/24 22:42, , 3F
我想到的只有備份、remove、;rename XD
05/24 22:42, 3F

05/24 22:43, , 4F
問題2的計算檔案大小,確實可以用 fseek 來取得
05/24 22:43, 4F

05/24 23:31, , 5F
可能只能全部讀進來,刪掉部份,寫出覆蓋
05/24 23:31, 5F

05/24 23:31, , 6F
其實沒有特殊需求的話,有些 script language 比較好做
05/24 23:31, 6F

05/24 23:33, , 7F
不過有些log檔的做法 是超過一定的大小就建立新檔案再寫
05/24 23:33, 7F

05/24 23:33, , 8F
這樣好像會單純許多
05/24 23:33, 8F

05/25 00:13, , 9F
fseek( fp, 0, SEEK_END); ftell(f);
05/25 00:13, 9F
文章代碼(AID): #1B-erOTq (C_and_CPP)
文章代碼(AID): #1B-erOTq (C_and_CPP)