#include <stdio.h>
#include <time.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <stdio.h>
#include <errno.h>
int main()
{
int size;
char* filepath = "./a.out";
struct stat info;
stat(filepath, &info);
size = info.st_size;
printf("a.out size is %d\n",size);
}
#if 0
还可以获取一下的内容:
定义在#include <sys/types.h>
#include <sys/stat.h>
#include <unistd.h>
可以通过 man 2 stat 来得到
struct stat {
dev_t st_dev; /* ID of device containing file */
ino_t st_ino; /* inode number */
mode_t st_mode; /* protection */
nlink_t st_nlink; /* number of hard links */
uid_t st_uid; /* user ID of owner */
gid_t st_gid; /* group ID of owner */
dev_t st_rdev; /* device ID (if special file) */
off_t st_size; /* total size, in bytes */
blksize_t st_blksize; /* blocksize for file system I/O */
blkcnt_t st_blocks; /* number of 512B blocks allocated */
time_t st_atime; /* time of last access */
time_t st_mtime; /* time of last modification */
time_t st_ctime; /* time of last status change */
};
#endif
-
读取文件的大小
#include <stdio.h>
#define DEBUG(argv) printf argv
typedef unsigned int u32;
int main()
{
FILE *finput;
u32 strmLen;
finput = fopen("hi3515_w704h576.yuv","rb");
if (finput == NULL)
{
DEBUG(("UNABLE TO OPEN INPUT FILE\n"));
return -1;
}
fseek(finput,0L,SEEK_END);
strmLen = (u32)ftell(finput);
rewind(finput);
printf("file len is %dM\n",strmLen/(1024*1024));
return 0;
}