今天在看源码是碰到了这个结构和函数,感觉挺不错的,所以就记下了
#include <sys/types.h>
#include <sys/stat.h>
struct stat的用法 2010-12-09 17:35:20
分类: C/C++
预备知识:
1. 函数名: lstat
需要包含的头文件:
#include <sys/types.h>
参数:
path:文件路径名。
buf:是以下结构体的指针
程序执行结果:
The size of /home/eagle/test/readdir.c in bytes:501
The time of last access:Thu Dec 9 16:56:31 2010
The time of last modification:Thu Nov 18 17:20:42 2010
The user ID is:1015
1. 函数名: lstat
需要包含的头文件:
#include <sys/types.h>
#include <sys/stat.h>用 法: int lstat(const char *path, struct stat *buf);
功 能: 获取一些文件相关的信息
参数:
path:文件路径名。
buf:是以下结构体的指针
struct stat
{
dev_t st_dev; /* ID of device containing file -文件所在设备的ID*/
ino_t st_ino; /* inode number -inode节点号*/
mode_t st_mode; /* protection -保护模式?*/
nlink_t st_nlink; /* number of hard links -链向此文件的连接数(硬连接)*/
uid_t st_uid; /* user ID of owner -user id*/
gid_t st_gid; /* group ID of owner - group id*/
dev_t st_rdev; /* device ID (if special file) -设备号,针对设备文件*/
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 status change - */
};
2. lstat函数返回说明:
成功执行时,返回0。失败返回-1,errno被设为以下的某个值
EBADF: 文件描述词无效
EFAULT: 地址空间不可访问
ELOOP: 遍历路径时遇到太多的符号连接
ENAMETOOLONG:文件路径名太长
ENOENT:路径名的部分组件不存在,或路径名是空字串
ENOMEM:内存不足
ENOTDIR:路径名的部分组件不是目录
程序清单:
|
The size of /home/eagle/test/readdir.c in bytes:501
The time of last access:Thu Dec 9 16:56:31 2010
The time of last modification:Thu Nov 18 17:20:42 2010
The user ID is:1015