オフセットでファイル処理を開始するには?

オフセットでファイル処理を開始するには?

ユースケース:1週間にわたって数GBのログファイルがあり、たとえばgrep知識に基づいて推測してファイルの途中で検索を開始すると、処理時間が半分以上短縮されるとします。関連データをスキップせずにファイルセクションの残りの部分全体を処理する必要はありません。可能ですか?

ベストアンサー1

データが時系列でソートされているとします。

  1. 最後を見て、次のようにしてファイルサイズを確認してくださいftell()
  2. 結果を2で割ります。
  3. fseek()場所を見つけるために使用されます。
  4. 一度呼び出して、次の行の先頭を見つけますgetline()
  5. strptime()現在の日付を知るために使用されます。
  6. バイナリ検索を実行し、目的の行が見つかるまで手順4と5を繰り返します。

おすすめ記事