Linux获取文件信息

项目中需要对文件进行处理并分析,首先需要根据要求找到该文件,比如最后修改的文件

代码实现:

 1 #include <unistd.h>
 2 #include <sys/stat.h>
 3 #include <time.h>
 4
 5 #include <iostream>
 6
 7 using namespace std;
 8
 9 int main(int argc, char **argv)
10 {
11     struct stat STFile;
12     stat("main.cpp", &STFile);
13
14     cout << ctime(&STFile.st_mtime) << endl;
15     cout << ctime(&STFile.st_atime) << endl;
16
17     return 0;
18 }

使用到的函数有:

stat,定义在sys/stat.h头文件中,用于根据文件名获取文件的信息

ctime定义在time.h头文件中,用于将时间time_t类型的时间转换为char*类型的时间

结构体有:struct stat

stat函数执行后,正确则返回0,否则返回-1,错误代码保存在errno中,如果执行成功,则将指定文件的信息填充到第二个参数指向的结构体中。

struct stat的定义如下:

 1 struct stat
 2 {
 3         mode_t     st_mode;       //文件对应的模式,文件,目录等
 4         ino_t      st_ino;       //inode节点号
 5         dev_t      st_dev;        //设备号码
 6         dev_t      st_rdev;       //特殊设备号码
 7         nlink_t    st_nlink;      //文件的连接数
 8         uid_t      st_uid;        //文件所有者
 9         gid_t      st_gid;        //文件所有者对应的组
10         off_t      st_size;       //普通文件,对应的文件字节数
11         time_t     st_atime;      //文件最后被访问的时间
12         time_t     st_mtime;      //文件内容最后被修改的时间
13         time_t     st_ctime;      //文件状态改变时间
14         blksize_t st_blksize;    //文件内容对应的块大小
15         blkcnt_t   st_blocks;     //伟建内容对应的块数量
16 };

其中,我们使用到的成员变量为st_mtime。得到该该变量,即可根据变量的值来确定哪个文件时最后被修改的,从而得到最新的文件。

st_mtime是time_t类型,输出就是一串数字,如果想要直观的查看时间,可以用ctime函数对其进行转换后输出,转换前后输出对比:

1 转换前:1414482116
2 转换后:Tue Oct 28 15:43:46 2014
时间: 2025-01-13 04:51:30

Linux获取文件信息的相关文章

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

stat函数讲解 表头文件:    #include <sys/stat.h>             #include <unistd.h>定义函数:    int stat(const char *file_name, struct stat *buf);函数说明:    通过文件名filename获取文件信息,并保存在buf所指的结构体stat中返回值:      执行成功则返回0,失败返回-1,错误代码存于errno 错误代码:    ENOENT         参数fi

Linux获取网络接口信息

linux获取网络接口信息需要用到的函数为ioctl(),结构体struct ifreq,struct ifconf 1.ioctl()函数原型及作用 1 #include <sys/ioctl.h> 2 3 int ioctl(int d, int request, ...); 4 5 //参数 6 //int d:是一个文件描述符 7 //int request :表示要请求的信息.如IP地址.网络掩码等 8 //......:可变参数,根据request而定 下面是ioctl请求的req

linux 获取文件系统信息(磁盘信息)

源码如下: #include <stdio.h> #include <stdlib.h> #include <string.h> #include <sys/vfs.h> //文件系统信息结构体 struct fileSystem_info{ char fileSystem_format[8]; char fileSystem_total_capacity[11]; char fileSystem_free_capacity[11]; char fileSy

linux stat系统调用,获取文件信息。

stat 函数原型: int stat(const char *path, struct stat *buf); struct stat 说明 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

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

前言 在之前的文章中,描述过如何用 fcntl 函数改变文件的状态标记.但,文件还有很多信息,如文件类型,权限设置,设备编号,访问时间等等.如果要获取这些信息,则使用函数 lstat 可以轻松达到这个目的. 下面的程序将使用该函数获取文件类型信息并判断它的类型. 但在这之前,先要说明文件信息结构体和文件类型判定宏. 文件信息结构体 调用 lstat 函数将会把指定文件的信息存放到 stat 结构体中,这个结构体的定义大致如下: 文件类型判定宏 文件结构体中的文件类型字段是一个整数,对此,可以使用

stat()函数--------------获取文件信息

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_nli

HttpWebRequest / HttpWebResponse 远程获取文件信息

HttpWebRequest myReq = (HttpWebRequest)WebRequest.Create(path+filename); //创建一个请求(获得需要的文件信息) HttpWebResponse myRes = (HttpWebResponse)myReq.GetResponse(); string gorlseftDate = myRes.LastModified.ToString("yyyy-MM-dd hh:mm:ss");//获得dataServer.ra

【转】windows c++获取文件信息——_stat函数的使用

_stat函数的功能 _stat函数用来获取指定路径的文件或者文件夹的信息. 函数声明 int _stat( const char *path, struct _stat *buffer ); 参数: path——文件或者文件夹的路径 buffer——获取的信息保存在内存中 返回值: 正确——返回0 错误——返回-1,具体错误码保存在errno中 struct _stat结构体 _stat结构体是文件(夹)信息的结构体,定义如下: struct stat { _dev_t st_dev; //文

php 获取文件信息相关基础函数

<?phpheader('content-type:text/html;charset=utf-8');date_default_timezone_set('PRC');/** * 文件信息相关API */$filename="./test1.txt";// $filename="test";//filetype($filename):获取文件的类型,返回的是文件的类型echo '文件类型为:',filetype($filename),'<br/>