int filesize(FILE * handle)
{
int filesize;
int old_pointer = ftell(handle);
fseek(handle, 0, SEEK_END);
filesize = ftell(handle);
fseek(handle, old_pointer, SEEK_SET);
return filesize;
}
これは、関数がファイルのサイズを返すための良い方法ですか?ファイルサイズを返す関数?
より良いPOSIXの代替手段は 'fseeko'と' ftello'です。 'stat'ファミリを使うと、ブロックデバイスや他の普通でないファイルのサイズが正しく取得されません。 –
そして、ターミナルやパイプを探すことはできません。すべてに制限があります。 –
ファイルにサイズがない場合は、サイズを確認することは意味のある操作ではありません。私のアプローチは、答えが存在するときは常に正解を返す。 –