#include函数原型: intstat(constchar*file_name,structstat*buf () ) ) ) ) ) ) ) ) ) ) ) )
**函数说明: **stat函数获取file_name指向文件的文件状态,将文件信息保存在结构buf中,执行成功返回0,失败返回-1,错误代码保存在errno中
结构体structstat的参数说明:
严格启动
{
dev_tst_dev;//设备文件的设备编号
ino_tst_ino; //inode文件的索引节点
模式_ tst _ mode; //protection文档类型和权限
nlink_tst_nlink; //numberofhardlinks连接到此文件的硬连接数。 刚创建的文件的值为1。
uid_tst_uid; //userIDofowner文件所有者的用户标识符
gid_tst_gid; //groupIDofowner文件所有者的组标识符
dev_tst_rdev; //devicetype如果此文件是装置设备文件,则为其设备编号
off_tst_size; //totalsize,inbytes文件大小,按字节
unsignedlongst_blksize; //blocksizeforfilesystemI/O文件系统的I/O缓冲区大小。
unsignedlongst_blocks; //numberofblocksallocated占用文件块的数量,每个块的大小为512字节。
time_tst_atime; 上次访问或执行//timeoflastaccess文件的时间通常仅在使用mknod、utime、read、write和tructate时发生变化。
time_tst_mtime; //timeoflastmodification文件上次修改的时间通常只有在使用mknod、utime和write时才会发生变化
time_tst_ctime; //timeoflastchangei-node上次修改的时间。 当文件的所有者、组和权限发生更改时,将更新此参数
(;
st_mode说明:
1、S_IFMT0170000文件类型的位掩码
2、S_IFSOCK0140000scoket
3、S_IFLNK0120000符号连接
4、S_IFREG0100000一般文件
5、S_IFBLK0060000阻滞装置
6、S_IFDIR0040000目录
7、S_IFCHR0020000文字装置
8、S_IFIFO0010000先进先出
9、S_ISUID04000文件的(执行中的setuser-id )位
10、S_ISGID02000文件的(设置组id on execution )位
11、S_ISVTX01000文件的sticky位
12、s_IRusr(s_iread ) 00400文件的所有者具有可读权限
13、s_iwusr(s_Iwrite ) 00200文件的所有者具有可写权限
14、s_ixusr(s_iexec ) 00100文件的所有者具有执行权限
15、S_IRGRP00040用户组具有可读权限
16、S_IWGRP00020用户组具有可写权限
17、S_IXGRP00010用户组具有执行权限
18、S_IROTH00004其他用户具有可读权限
19、S_IWOTH00002其他用户具有可写权限
20、S_IXOTH00001其他用户具有可执行权限的上述文件类型定义了在POSIX上检查这些类型的宏定义
21、s_islnk(ST_mode )判断是否为符号连接
22、s_isreg(ST_mode )是一般文件吗
23、s_isdir(ST_mode )是否为目录
24、s_ischr(ST_mode )是否为字符设备文件
25、s_isblk(s3e )是否先进先出
26、如果s_issock(ST_mode )是否为socket目录中有sticky位(S_ISVTX ),则此目录下的文件为此文件的所有者、此目录的所有者