-
直接转换utime函数数据流图至模块结构图的方法
资源介绍
4.19 utime函数
一个文件的存取和修改时间可以用u t i m e函数更改。
#include
#include
int utime(const char *p a t h n a m e, const struct utimbuf *t i m e s) ;
返回:若成功则为0,若出错则为-1
此函数所使用的结构是:
struct utimbuf {
time_t actime; /*access time*/
time_t modtime; /*modification time*/
}
此结构中的两个时间值是日历时间。如 1 . 1 0节中所述,这是自 1 9 7 0年1月1日,0 0 : 0 0 : 0 0以来国
际标准时间所经过的秒数。
此函数的操作以及执行它所要求的优先权取决于 t i m e s参数是否是N U L L。
(1) 如果t i m e s是一个空指针,则存取时间和修改时间两者都设置为当前时间。为了执行此
操作必须满足下列两条件之一: ( a )进程的有效用户 I D必须等于该文件的所有者 I D,( b )进程对
该文件必须具有写许可权。
(2) 如果t i m e s是非空指针,则存取时间和修改时间被设置为 t i m e s所指向的结构中的值。此
时,进程的有效用户I D必须等于该文件的所有者 I D,或者进程必须是一个超级用户进程。对文
件只具有写许可权是不够的。
注意,我们不能对更改状态时间 s t _ c t i m e指定一个值,当调用u t i m e函数时,此字段被自动
更新。
在某些U N I X版本中, t o u c h ( 1 )命令使用此函数。另外,标准归档程序 t a r ( 1 )和c p i o ( 1 )可选
地调用u t i m e ,以便将一个文件的时间值设置为将它归档时的值。
实例
程序4 - 6使用带O _ T R U N C选择项的o p e n函数将文件长度截短为 0,但并不更改其存取时间
及修改时间。为了做到这一点,首先用 s t a t函数得到这些时间,然后截短文件,最后再用 u t i m e
函数重置这两个时间。
程序4-6 utime 函数实例
7 8 U N I X环境高级编程
- 上一篇: Unix程序员手册(完整英文版)
- 下一篇: unix系统编程源代码