stat函数的用法
2016-01-12 17:06
281 查看
stat函数的用法
头文件: #include <sys/stat.h>
函数定义: int stat(const char *file_name, struct stat *buf);
函数说明: 通过文件名filename获取文件信息,并保存在buf所指的结构体stat中
返回值: 执行成功则返回0,失败返回-1,错误代码存于errno(需要include <errno.h>)
errno错误代码:
ENOENT 参数file_name指定的文件不存在
ENOTDIR 路径中的目录存在但却非真正的目录
ELOOP 欲打开的文件有过多符号连接问题,上限为16符号连接
EFAULT 参数buf为无效指针,指向无法存在的内存空间
EACCESS 存取文件时被拒绝
ENOMEM 核心内存不足
ENAMETOOLONG 参数file_name的路径名称太长
stat结构体定义:
struct stat {
dev_t st_dev; //文件的设备编号
ino_t st_ino; //节点
mode_t st_mode; //文件的类型和存取的权限
nlink_t st_nlink; //连到该文件的硬连接数目,刚建立的文件值为1
uid_t st_uid; //用户ID
gid_t st_gid; //组ID
dev_t st_rdev; //(设备类型)若此文件为设备文件,则为其设备编号
off_t st_size; //文件字节数(文件大小)
unsigned long st_blksize; //块大小(文件系统的I/O 缓冲区大小)
unsigned long st_blocks; //块数
time_t st_atime; //最后一次访问时间
time_t st_mtime; //最后一次修改时间
time_t st_ctime; //最后一次改变时间(指属性)
};
示例代码:
#include <sys/stat.h>
#include <stdio.h>
#include <errno.h>
int main()
{
struct stat buf;
int res = stat("test.txt", &buf);
if(res != 0)
{
printf("stat file fail!\n");
printf("%d\n", errno);
}
return 0;
}
头文件: #include <sys/stat.h>
函数定义: int stat(const char *file_name, struct stat *buf);
函数说明: 通过文件名filename获取文件信息,并保存在buf所指的结构体stat中
返回值: 执行成功则返回0,失败返回-1,错误代码存于errno(需要include <errno.h>)
errno错误代码:
ENOENT 参数file_name指定的文件不存在
ENOTDIR 路径中的目录存在但却非真正的目录
ELOOP 欲打开的文件有过多符号连接问题,上限为16符号连接
EFAULT 参数buf为无效指针,指向无法存在的内存空间
EACCESS 存取文件时被拒绝
ENOMEM 核心内存不足
ENAMETOOLONG 参数file_name的路径名称太长
stat结构体定义:
struct stat {
dev_t st_dev; //文件的设备编号
ino_t st_ino; //节点
mode_t st_mode; //文件的类型和存取的权限
nlink_t st_nlink; //连到该文件的硬连接数目,刚建立的文件值为1
uid_t st_uid; //用户ID
gid_t st_gid; //组ID
dev_t st_rdev; //(设备类型)若此文件为设备文件,则为其设备编号
off_t st_size; //文件字节数(文件大小)
unsigned long st_blksize; //块大小(文件系统的I/O 缓冲区大小)
unsigned long st_blocks; //块数
time_t st_atime; //最后一次访问时间
time_t st_mtime; //最后一次修改时间
time_t st_ctime; //最后一次改变时间(指属性)
};
示例代码:
#include <sys/stat.h>
#include <stdio.h>
#include <errno.h>
int main()
{
struct stat buf;
int res = stat("test.txt", &buf);
if(res != 0)
{
printf("stat file fail!\n");
printf("%d\n", errno);
}
return 0;
}
相关文章推荐
- mysql中Access denied for user 'root'@'localhost' (using password:YES)的解决办法(本人实操)
- Linux下软件安装和卸载
- DIY:利用Arduino制作智能家居系统
- 多媒体格式
- 坦克大战游戏步骤 思路 与代码(一)
- Android网络图片加载框架:Universal-ImageLoader简介
- C3P0 相关配置描述
- lightoj 1214 大数的整除
- windows下使用TortoiseGit代替Git命令行操作
- Swift开发IOS-UIActionSheet
- 查找olr备份路径
- 我的第一篇博客
- Android ADB命令大全(通过ADB命令查看wifi密码、MAC地址、设备信息、操作文件、查看文件、日志信息、卸载、启动和安装APK等)
- C# Thread挂起线程和恢复线程
- 深入了解MyBatis返回值
- Excel表中数据导入到数据库Mdb文件实例(附源码)
- win7和xp对vb的串口控件支持还有差别
- 深度学习在自然语言处理的应用
- C#多线程编程
- ionic教程之Win10环境下ionic+angular实现滑动菜单及列表