stat():用于获取文件的状态信息,使用时需要包含<sys/stat.h>头文件。

函数原型:int stat(const char *path, struct stat *buf);

struct stat {
  dev_t st_dev;              /* ID of device containing file */
  ino_t st_ino;           /* inode number */
  mode_t st_mode;       /* protection */
  nlink_t st_nlink;       /* number of hard links */
  uid_t st_uid;         /* user ID of owner */
  gid_t st_gid;              /* group ID of owner */
  dev_t st_rdev;        /* device ID (if special file) */
  off_t st_size;          /* total size, in bytes */
  blksize_t st_blksize;   /* blocksize for file system I/O */
  blkcnt_t st_blocks;     /* number of 512B 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 */
};

示例:

int main(int argc, char* argv[])
{
struct stat buf;
char* path = "E:\\1.txt"; int res = stat(path, &buf);
if (res != )
{
perror("Problem getting information");
switch (errno)
{
case ENOENT:
printf("File %s not found.\n", path);
break;
case EINVAL:
printf("Invalid parameter to _stat.\n");
break;
default:
/* Should never be reached. */
printf("Unexpected error in _stat.\n");
}
} //获取文件类型
if (buf.st_mode & S_IFREG)
printf("regular file\n");
else if (buf.st_mode & S_IFDIR)
printf("dir \n");
else
printf("other\n"); //获取大小
printf("SIZE %d\n", buf.st_size); char timeBuf[] = { };
printf("%lld\n", buf.st_ctime);
//文件最后访问时间
errno_t err = ctime_s(timeBuf, ,&buf.st_atime);
if (err)
{
printf("Invalid arguments to ctime_s.");
return -;
}
printf("Time visit %s\n", timeBuf); //文件最后修改时间
err = ctime_s(timeBuf, , &buf.st_mtime);
if(err)
{
printf("Invalid arguments to ctime_s.");
return -;
}
printf("Time modified %s\n", timeBuf); system("pause");
return ;
}

示例及参考来源:https://docs.microsoft.com/zh-cn/cpp/c-runtime-library/reference/stat-functions

stat()函数--------------获取文件信息的更多相关文章

  1. 第九篇:使用 lstat 函数获取文件信息

    前言 在之前的文章中,描述过如何用 fcntl 函数改变文件的状态标记.但,文件还有很多信息,如文件类型,权限设置,设备编号,访问时间等等.如果要获取这些信息,则使用函数 lstat 可以轻松达到这个 ...

  2. 使用 lstat 函数获取文件信息

    前言 在之前的文章中,描述过如何用 fcntl 函数改变文件的状态标记.但,文件还有很多信息,如文件类型,权限设置,设备编号,访问时间等等.如果要获取这些信息,则使用函数 lstat 可以轻松达到这个 ...

  3. 【转】linux C++ 获取文件信息 stat函数详解

    stat函数讲解 表头文件:    #include <sys/stat.h>             #include <unistd.h>定义函数:    int stat ...

  4. 使用QFileInfo类获取文件信息(在NTFS文件系统上,出于性能考虑,文件的所有权和权限检查在默认情况下是被禁用的,通过qt_ntfs_permission_lookup开启和操作。absolutePath()必须查询文件系统。而path()函数,可以直接作用于文件名本身,所以,path() 函数的运行会更快)

    版权声明:本文为博主原创文章,未经博主允许不得转载. https://blog.csdn.net/Amnes1a/article/details/65444966QFileInfo类为我们提供了系统无 ...

  5. 使用QFileInfo类获取文件信息(文件的所有权和权限检查在默认情况下是被禁用的。要使能这个功能 extern Q_CORE_EXPORT int qt_ntfs_permission_lookup;)

    QFileInfo类为我们提供了系统无关的文件信息,包括文件的名字和在文件系统中位置,文件的访问权限,是否是目录或符合链接,等等.并且,通过这个类,可以修改文件的大小和最后修改.读取时间.同时,QFi ...

  6. FastDFS 通过文件名获取文件信息

    /** * 获取文件信息 * * param string group_name 文件所在的组名 * param string file_id 文件id(如: M00/09/BE/rBBZolgj6O ...

  7. Unix无缓冲文件操作函数、文件信息查询

    问题描述:         Unix无缓冲文件操作函数.文件信息查询 问题解决:        struct stat 结构体信息: 具体代码: 具体源文件:

  8. C# -- 使用FileInfo获取文件信息

    C# -- 使用FileInfo获取文件信息 1. 代码实现 static void Main(string[] args) { GetFileInfo(@"D:\Test.xlsx&quo ...

  9. C#中获取文件信息的代码

    如下的内容内容是关于C#中获取文件信息的内容,应该对大伙有一些好处. FileInfo fi = new FileInfo(@"C:file.txt"); if(fi.Exists ...

随机推荐

  1. NOIp2018RP++

    NOIp2018RP++ Rp=0 while True: Rp+=1; print (Rp)

  2. HTML字符实体和转义字符串大全

    转义字符串的组成 转义字符串(Escape Sequence),即字符实体(Character Entity)分成三部分:第一部分是一个&符号,英文叫ampersand:第二部分是实体(Ent ...

  3. Vue插件配置和 后台交互

    Vue插件配置和 后台交互 一.全局配置静态文件(csss, js..) 1.1 全局配置css文件 创建css文件 在main.js配置css文件 // 配置全局css样式 // 方式一 impor ...

  4. Python笔记_第三篇_面向对象_5.一个关于类的实例(人开枪射击子弹)

    1. 我们学了类的这些东西,用这些类我们来操作一个关于类的实例. 2. 题目:人开枪射击子弹,然后具有装弹动作,然后再开枪. 第一步:设计类: 人类名:Person属性:gun行为:fire,fill ...

  5. Java的各类型数据在内存中分配情况详解

    1.      有这样一种说法,如今争锋于IT战场的两大势力,MS一族偏重于底层实现,Java一族偏重于系统架构.说法根据无从考证,但从两大势力各自的社区力量和图书市场已有佳作不难看出,此说法不虚,但 ...

  6. Proe5.0导出PDF至配置文件的相关方法,VC++

    定义文件bcsMessage.txt PLM PLM PLM # login login 测试 # Active messagebox menu Active messagebox menu 激活菜单 ...

  7. 吴裕雄--天生自然 JAVA开发学习:多态

    Parent p = new Child(); public class Test { public static void main(String[] args) { show(new Cat()) ...

  8. C语言中未定义的引用错误

    1.错误描述: /tmp/ccAu32Cb.o:在函数‘main’中:static.c:(.text+0x2d):对‘print_value’未定义的引用 2.通过对错误内容分析,我在编写程序时,ma ...

  9. c++ 语言几个坑

    #include <iostream> int main(){ int i = 1; switch (i){ case 1 : int j ; j = 1; break; case 2: ...

  10. centos7 ModuleNotFoundError: No module named 'users'

    centos7下运行django项目时ModuleNotFoundError: No module named 'users' 由于我的项目目录是下面这样: 因为找不到users的路径 所以在mana ...