月度归档:2015年05月

文件中的时间戳的用途

一 时间戳简介
linux 中时间戳是linux下的一种时间表示法,是从格林威治时间1970年01月01日00时00分00秒开始计算的秒数合计。
在linux下查看文件的相关事件戳,可以通过查看文件的相关信息来完成此操作查看时间戳

二 时间戳用途
  2.1 在linux c,如果是一个跨地区的多个开发的项目,如果不采用时间戳的概念,那么编译器可能都不能很准备的判断文件的修改时间及先后顺序。
  2.2 在使用makefile自动编译文件时,如果不采用touch修改时间戳,那么makefile就会采用以前的文件版本,不会对文件进行重新编译,如果修改时间戳,那么所有的文件都会得到重新编译和生成。

相关阅读:
linux stat命令
linux make自动编译

linux c stat函数

一 stat函数简介
stat函数同linux下stat命令相似。
在linux shell中我们可以通过输入stat命令获取文件的除内容外的详细信息,在linux c中我们可以通过stat函数获取文件或文件系统的详细信息。
二 stat函数说明
需引入头文件:
#include < sys/stat.h>
#include < unistd.h>
函数原型:
int stat(const char *filename, struct stat *buf);
参数说明:
filename 为文件名(相对于当前程序运行目录)
buf 如果执行成功,则将文件信息返回给结构体buf中,供程序中使用
返回值:
0代码执行成功,-1代表执行错误,并会产生相应的errno信息
errno信息:
ENOENT filename 指定的文件不存在
ENOTDIR 路径目录异常
ELOOP 文件符号连接过长
EFAULT buf 为无效指针
EACCESS 存储文件异常
ENOMEM 内存不足
ENAMETOOLONG filename文件名过长
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; //最后一次改变时间(指属性)
};
三 stat函数举例使用说明
 linux-c-stat

相关阅读
linux stat命令简介

linux 命令之stat

一、stat命令简介
stat命令的主要功能是展现文件或文件系统的详细信息,类似的命令有 ls
二、stat命令参数说明
[root@localhost ~]#stat [参数] [fileName]
[root@localhost ~]#stat -L filename 显示所有信息 等同于 [root@localhost ~]#stat filename
[root@localhost ~]#stat -f filename 显示文件系统的详细信息
[root@localhost ~]#stat -c format filename //打印出文件制定信息
[root@localhost ~]#stat -c %a filename //打印出访问权限
format: %a 打印出权限 数字模式显示
%A 打印出权限 英文模式显示
%b 分配块数据
%B 每块尺寸大小
%C 是否包含安全字符
%d 文件号 十进制显示
%D 文件号 十六进制显示
%f 行模式 十六进制显示
%F 文件类型 目录还是文件
%g 组Id
%G 组名
%h 链接数(link)
%i 目录节点号 inode号
%m 挂载节点信息
%n 文件名
%s 总尺寸
%u 所属用户Id
%U 所属用户名
%w %W 文件生成时间
%x %X 最后一次访问时间
%y %Y 最后一次修改时间

三、stat举例说明
1 stat查看文件信息 [root@localhost ~]#stat
stat命令
我们可以看出通过stat命令就显示出了文件的详细:文件所属群组,所属用户信息,大小 文件名,inode节点信息,
Access最后放问时间 Modify最后修改时间 Change 最后修改时间。
2 当采用more 命令查看文件后,再用stat查看文件,此时文件就显示查看时间发生了变化
stat访问时间发生变化
3 当我们修改文件属性的时候,例 修改权限 ,那么此时change时间就会发生变化,当我们修改文件内容时,Change time modify time 都会发生变化
stat修改时间
 通过以上我们可以看出:
1访问文件将改变Access time
2 修改文件属性会改变 change time
3 修改文件内容会改变 change time modfiy time

相关阅读:
linux ls命令使用说明