そこで,fseekとfgetposを使ってファイルポインタの位置を調べることで
間接的にファイルサイズを取得するそうな.
fpos_t fpos; FILE *fp = fopen(fname, "rb"); fseek(fp, 0, SEEK_END); fgetpos(fp, &fpos); fclose(fp); fpos.__pos; // これがファイルサイズ
// Reference
ファイルサイズの取得方法
半年くらい前にはまったこと
標準C言語関数
fpos_t fpos; FILE *fp = fopen(fname, "rb"); fseek(fp, 0, SEEK_END); fgetpos(fp, &fpos); fclose(fp); fpos.__pos; // これがファイルサイズ
int i = 0;
while (1) {
i++;
if (unlikely(i > 100))
break;
}
上記の例では,ループを抜ける条件式の#define EXPAND_MACRO(_MACRO) \
_MACRO(a) \
_MACRO(b) \
#define DEFINE(_X) int _X;
#define FUNC(_X) do { func(_X); } while (0);