博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
UNIX--stat、fstat和lstat函数
阅读量:6501 次
发布时间:2019-06-24

本文共 2136 字,大约阅读时间需要 7 分钟。

hot3.png

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

转载于:https://my.oschina.net/u/947963/blog/113498

你可能感兴趣的文章
mactex 配置emacs和auctex
查看>>
fedora inittab
查看>>
网站优化怎么做?老鸟实战经验交给你
查看>>
ORACLE临时表空间总结
查看>>
hbase shell命令扩展
查看>>
emacs乱码
查看>>
C++中cout输出字符型指针地址值的方法
查看>>
ubuntu-10.10系统中samba服务的安装
查看>>
ConcurrentDictionary in dotnet
查看>>
Credentials and Access Control in Linux
查看>>
我的 Putty 窗口字体背景颜色配置
查看>>
sicily 1034 Forest
查看>>
oralce与mysql的区别
查看>>
android service & AIDL
查看>>
java 时间戳和PHP时间戳 的转换 php time()
查看>>
Linux常用命令大全
查看>>
linux /proc目录
查看>>
[linux命令]mount umount
查看>>
div构建table
查看>>
批量修改文件名后缀
查看>>