UNIX--stat、fstat和lstat函数

stat、fstat和lstat函数(UNIX) #include #include int stat(const char *restrict pathname, struct stat *restrict buf); 供给文件姓名,获取文件对应特点。感受通常是文件没有翻开的时分这样操作。 int fstat(int filedes, struc http://www.goodk123.info/linked/20130312.do t stat *buf); 经过文件描绘符获取文件对应的特点。文件翻开后这样操作 int lstat(const char *restrict pathname, struct stat *restrict buf); 衔接文件 三个函数的回来:若成功则为0,若犯错则为-1 给定一个pathname,stat函数回来一个与此命名文件有关的信息布局,fstat函数取得已在描绘符filedes上翻开的文件的有关信息。lstat函数类似于stat,可是当命名的文件是一个符号衔接时,lstat回来该符号衔接的有关信息,而不是由该符号衔接引证的文件的信息。 第二个参数是个指针,它指向一个咱们应供给的布局。这些函数填写由buf指向的布局。该布局的实践界说能够随完成而有所不同,但其基本形式是: 函数都是获取文件(一般文件,目录,管道,socket,字符,块()的特点。 函数原型 #include  int stat(const char *restrict pathname, struct stat *restrict buf); 供给文件姓名,获取文件对应特点。 int fstat(int filedes, struct stat *buf); 经过文件描绘符获取文件对应的特点。 int lstat(const char *restrict pathname, struct stat *restrict buf); 衔接文件描绘命,获取文件特点。 2 文件对应的特点 struct stat {         mode_t     st_mode;       //文件对应的形式,文件,目录等         ino_t      st_ino;       //inode节点号         dev_t      st_dev;        //设备号码         dev_t      st_rdev;       //特别设备号码         nlink_t    st_nlink;      //文件的衔接数         uid_t      st_uid;        //文件所有者         gid_t      st_gid;        //文件所有者对应的组         off_t      st_size;       //一般文件,对应的文件字节数         time_t     st_atime;      //文件最终被拜访的时刻         time_t     st_mtime;      //文件内容最终被修正的时刻         time_t     st_ctime;      //文件状况改动时刻         blksize_t st_blksize;    //文件内容对应的块巨细         blkcnt_t   st_blocks;     //伟建内容对应的块数量       }; 能够经过上面供给的函数,回来一个布局体,保存着文件的信息。 stat函数解说 表头文件:    #include               #include  界说函数:    int stat(const char *file_name, struct stat *buf); 函数阐明:    经过文件名filename获取文件信息,并保存在buf所指的布局体stat中 回来值:      履行成功则回来0,失利回来-1,错误代码存于errno 错误代码:     ENOENT         参数file_name指定的文件不存在     ENOTDIR        途径中的目录存在但却非真实的目录     ELOOP          欲翻开的文件有过多符号衔接疑问,上限为16符号衔接     EFAULT         参数buf为无效指针,指向无法存在的内存空间     EACCESS        存取文件时被回绝     ENOMEM         中心内存不足     ENAMETOOLONG   参数file_name的途径称号太长 #include 
#include 
#include 

int main() {
    struct stat buf;
    stat("/etc/hosts",  http://www.haofapiao.com/linked/20130312.do

你可能感兴趣的:(UNIX--stat、fstat和lstat函数)