1,lstat
功能:获取一些文件相关的信息
原型:int lstat( const char *path, struct stat *buf);
参数:1)path:文件路径名
2)buf是一下结构体的指针
struct stat{
dev_t st_dev;//文件所在设备的标识
ino_t st_ino;//文件结点号
mode_t st_mode;//文件保护模式
nlink_t st_nlink;//硬连接数
uid_t st_uid;//文件用户标识
gid_t st_gid;//文件用户组标识
dev_t st_rdev;//文件所表示的特殊设备文件的设备标识
off_t st_size;//总大小,字节为单位
blksize_t st_blksize;//文件系统的块大小
blkcnt_t st_blocks;//分配给文件的块的数量,512字节为单元
time_t st_atime;//最后访问时间
time_t st_mtime;//最后修改时间
time_t st_ctime;//最后状态改变时间
};
2,S_ISDIR
功能:判断是否是目录
原型:int S_ISDIR(stat.st_mode;)
3,S_ISREG
判断是否是文件
4,stat
同lstat
5,access
功能:检查文件存在性
原型:int access(const char *filename, int amode);
amode参数为:
06 检查读写权限
04 检查读权限
02 检查写权限
01 检查执行权限
00 检查文件的存在
6,fstat
int fstat(int filedes,struct stat *buf),类似lstat
7,lseek
移动文件指针
8,ftruncate
功能:改变文件的大小
原型:int ftruncate(int fd, off_t length);
fd:文件描述符
length:要改变的大小
返回0:成功;-1:失败。错误原因存在errno中。
错误代码:
EBADF:参数fd文件描述符为无效的或该文件已关闭
EINVAL:参数fd为一socket并非文件,或是该文件并非以写入模式打开
9,fsync
功能:将文件缓存写入文件,起催化作用,一般不使用
10,opendir,readdir,closedir
目录操作