Cを使用して、コンテンツ全体をループせずにファイルの最後の行のみを読み取る方法はありますか?
ファイルには何百万もの行が含まれており、それぞれが整数(long long int)を保持しています。ファイル自体は非常に大きくなる可能性があり、最大で 1000 MB になると思います。最後の行が 55 桁を超えないことは確かですが、2 桁のみになる可能性もあります。あらゆる種類のデータベースを使用するという選択肢はありません...私はすでにそれを検討しました。
ばかげた質問かもしれませんが、PHP のバックグラウンドがあるため、答えるのが難しいと思います。私はいたるところを見ましたが、きれいなものは何も見つかりませんでした。
現在私は使用しています:
if ((fd = fopen(filename, "r")) != NULL) // open file
{
fseek(fd, 0, SEEK_SET); // make sure start from 0
while(!feof(fd))
{
memset(buff, 0x00, buff_len); // clean buffer
fscanf(fd, "%[^\n]\n", buff); // read file *prefer using fscanf
}
printf("Last Line :: %d\n", atoi(buff)); // for testing I'm using small integers
}
このようにして、ファイルのコンテンツをループし、ファイルが最大 50 万行を超えるとすぐに処理が遅くなります....
前もって感謝します。マキシム