Re: 用C++如何很快知道一個檔案有幾行

看板Programming作者 (陳揚和)時間17年前 (2009/02/23 09:41), 編輯推噓2(203)
留言5則, 2人參與, 最新討論串3/4 (看更多)
真是感謝版友的指導.. 其實不太懂I/O的機制..如果很低階I/O 會每讀一個字母就讀一次嗎 還是會自動Buffer, 因為我之前的I/O太慢, 還自己寫了一個buffer的class 做batch read write, 但copy 到 buffer在一個個看'\n'會比 fgetc 然後檢查慢嗎 另外 有些OS有提供AP來判斷檔案大小, 比如說我們 ls就時可看到 那個不應該是去數出來而是os 記得的大小吧 但是換行就沒記 只有檔案大小有記 應該是這樣吧 ※ 引述《sorryChen (陳揚和)》之銘言: : 一定要讀過每個字元然後看有幾個\n嗎, 因為檔很大時還滿慢的 : call system call wc 應該就更慢了 : 要怎麼知道檔案有多大我也不確定 這個file system 應該有紀錄 : 不用一個個字元數.. 但有os independent的函數可回傳檔案大小嗎 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 128.125.87.33

02/23 11:01, , 1F
取得檔案位址h,移動到檔尾t,計算得到t-d
02/23 11:01, 1F

02/23 11:01, , 2F
這是取得檔案大小一般的做法
02/23 11:01, 2F

02/23 11:02, , 3F
是在檔案結構沒有損毀的情況 算是os記的吧
02/23 11:02, 3F

02/23 18:47, , 4F
低階 I/O 通常要自己指定 buffer 大小。
02/23 18:47, 4F

02/23 18:48, , 5F
一次只讀一個字元通常會很慢。
02/23 18:48, 5F
文章代碼(AID): #19eVwple (Programming)
討論串 (同標題文章)
文章代碼(AID): #19eVwple (Programming)