struct stat

Posted liuzhenbo

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了struct stat相关的知识,希望对你有一定的参考价值。

stat函数用来获取指定路径的文件或者文件夹的信息。

//! 需要包含的头文件  
#include <sys/types.h>    
#include <sys/stat.h>   
//函数原型 int stat(   const char *filename, //文件或者文件夹的路径    struct stat *buf //获取的信息保存在内存中 ); 正确——返回0 错误——返回-1,具体错误码保存在errno中
errno 是记录系统的最后一次错误代码。代码是一个int型的值,在errno.h中定义。查看错误代码errno
是调试程序的一个重要方法。当linux C api函数发生异常时,一般会将errno变量(需include errno.h)
赋一个整数值,不同的值表示不同的含义,可以通过查看该值推测出错的原因。在实际编程中用这一招解决
了不少原本看来莫名其妙的问题。
//stat结构体是文件(夹)信息的结构体,定义如下:
struct
stat dev_t st_dev; /* ID of device containing file -文件所在设备的ID*/ ino_t st_ino; /* inode number -inode节点号*/ mode_t st_mode; /* protection -保护模式?*/ nlink_t st_nlink; /* number of hard links -链向此文件的连接数(硬连接)*/ uid_t st_uid; /* user ID of owner -user id*/ gid_t st_gid; /* group ID of owner - group id*/ dev_t st_rdev; /* device ID (if special file) -设备号,针对设备文件*/ off_t st_size; /* total size, in bytes -文件大小,字节为单位*/ blksize_t st_blksize; /* blocksize for filesystem I/O -系统块的大小*/ blkcnt_t st_blocks; /* number of 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 - */ ;
//例子:使用stat结构图获得文件信息
#include <iostream> #include <ctime> #include <sys/types.h> #include <sys/stat.h> using namespace std; int main () struct stat buf; int result; result = stat ("./download.c", &buf); if (result != 0) //perror ("Failed ^_^"); cout<<"Failed ^_^"; else //! 文件的大小,字节为单位 cout << "size of the file in bytes: " << buf.st_size << endl; //! 文件创建的时间 cout << "time of creation of the file: " << ctime (&buf.st_ctime) << endl; //! 最近一次修改的时间 cout << "time of last modification of the file: " << ctime (&buf.st_mtime) << endl; //! 最近一次访问的时间 cout << "time of last access of the file: " << ctime (&buf.st_atime)<< endl; return 0;
[email protected]:~/projects/curls/http_post/lib$ ./a.out
size of the file in bytes: 874
time of creation of the file: Tue Jun 18 13:33:05 2019

time of last modification of the file: Tue Jun 18 13:33:05 2019

time of last access of the file: Tue Jun 18 13:33:05 2019

 

以上是关于struct stat的主要内容,如果未能解决你的问题,请参考以下文章

struct net_device net_device_stats

对 struct 在这段代码中的工作方式感到困惑

Visual c# 中的 _stat 替代方案

关于文件结构体的使用

关于文件结构体的使用

c语言高手们请问一下-stat这个怎么用行么?