#include<stdio.h>
FILE *fopen(constchar*path,constchar*mode);#include<sys/types.h>#include<sys/stat.h>#include<fcntl.h>intopen(constchar*pathname,int flags);intopen(constchar*pathname,int flags, mode_t mode);#include<unistd.h>
ssize_t readlink(constchar*pathname,char*buf, size_t bufsiz);//readlink通过这个软链接得到对应的文件名#include<stdio.h>intfileno(FILE *stream);//The function fileno() examines the argument stream and returns its integer file descriptor.#include<sys/types.h>#include<sys/stat.h>#include<unistd.h>intstat(constchar*pathname,struct stat *statbuf);intfstat(int fd,struct stat *statbuf);intlstat(constchar*pathname,struct stat *statbuf);struct stat {
dev_t st_dev;/* ID of device containing file */
ino_t st_ino;/* Inode number */
mode_t st_mode;/* File type and mode */
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;/* Block size for filesystem I/O */
blkcnt_t st_blocks;/* Number of 512B blocks allocated *//* Since Linux 2.6, the kernel supports nanosecond
precision for the following timestamp fields.
For the details before Linux 2.6, see NOTES. */struct timespec st_atim;/* Time of last access */struct timespec st_mtim;/* Time of last modification */struct timespec st_ctim;/* Time of last status change */#define st_atime st_atim.tv_sec /* Backward compatibility */#define st_mtime st_mtim.tv_sec#define st_ctime st_ctim.tv_sec};
获取文件大小等信息
struct stat buf;stat("./tmp.txt",&buf);printf("test.log file size = %d \n",(int)buf.st_size);