構文
long fsize(
char *filename
);
パラメータ
- filename
- [in] サイズを調べるファイル名へのポインタです。
戻り値
関数がファイルサイズのバイト数,もしくは異常終了した場合ERRORを返します。値 | 説明 |
---|---|
正の整数値 | ファイルサイズのバイト数。 |
ERROR | 異常終了(ファイルが存在しない)。 |
解説
fopen中にfflushを行っても、fsizeによるファイルのサイズは変化しません。fcloseを行うとサイズが確定します。
必要条件
ヘッダファイル:
lib.hライブラリファイル:
libSTARTUPOPH5000.a
サンプル
#include <stdio.h>
#include "lib.h"
void main(void)
{
long size;
FILE *fp;
static char data[20+1];
unsigned int recsize;
for (recsize = 0; recsize < 20; recsize++) // prepare some data
{
data[recsize] = 'a' + recsize; // quit when recsize == 20
}
data[recsize] = '\0';
printf("\fPress a key");
for(;;)
{
ResetKey();
while (!kbhit())
{
Idle();
}
if (NULL == (fp = fopen("TEST.DAT","r+b")))
{
if (NULL == (fp = fopen("TEST.DAT","w+b")))
{
printf("\fError opening\nTEST.DAT");
continue;
}
}
if (fseek(fp, 0L, SEEK_END) != 0)
{
fclose(fp);
printf("\fError fseek on\nTEST.DAT");
continue;
}
if (fwrite(data, 1, recsize, fp) != recsize)
{
fclose(fp);
printf("\fError writing\nTEST.DAT");
continue;
}
fclose(fp);
size = fsize("TEST.DAT");
if (size > -1)
{
printf("\fSize = \n%ld bytes", size);
}
else
{
printf("\fTEST.DAT cannot\nbe found!");
}
}
}
最終更新日:2020/10/08