1、读文件
要使用C语言读取文件,可以使用size_t fread(void *ptr, size_t size, size_t nmemb, FILE *stream),此方法返回成功读取的元素总数会以 size_t 对象返回,size_t 对象是一个整型数据类型。如果总数与 nmemb 参数不同,则可能发生了一个错误或者到达了文件末尾。
例如,#include
#define nmemb 3
struct test
{
char name[20];
int size;
} s[nmemb];
int main(){
FILE * stream;
int i;
stream = fopen("/tmp/fwrite","r");
fread(s,sizeof(struct test),nmemb,stream);
fclose(stream);
for(i=0;i
printf("name[%d]=%-20s:size[%d]=%d\n",i,s[i].name,i,s[i].size);
}
文件读取还有其它函数,可以参考下面的文档,
相关函数:
2、获取文件信息
要获取有关文件的更多信息,可以使用int fstat(int fildes, struct stat *buf);函数。
stat文件信息结构体:struct stat {
dev_t st_dev; /* device */
ino_t st_ino; /* inode */
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 type (if inode device) */
off_t st_size; /* total size, in bytes */
blksize_t st_blksize; /* blocksize for filesystem I/O */
blkcnt_t st_blocks; /* number of 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 change */
};
例如,#include
#include
#include
#include
#include
#include
int main ( int argc, char *argv[])
{
struct stat FileAttrib;
if (stat("/etc/passwd", &FileAttrib) < 0)
printf("File Error Message = %s\n", strerror(errno));
else
printf( "Permissions: %d\n", FileAttrib.st_mode );
return 0;
}