utime函数-hds ams 2500用户手册
4.19 utime函数一个文件的存取和修改时间可以用utime函数更改。
#include <sys types.h="">
#include <utime.h>
int utime(const char *pathname, const struct utimbuf *times);
utime.h>sys>
返回:若成功则为0,若出错则为-1
此函数所使用的结构是:
struct utimbuf {
time_t actime; /*access time*/
time_t modtime; /*modification time*/
}
此结构中的两个时间值是日历时间。如1.10节中所述,这是自1970年1月1日,00:00以来国际标准时间所经过的秒数。此函数的操作以及执行它所要求的优先权取决于times参数是否是NULL。
-
如果times是一个空指针,则存取时间和修改时间两者都设置为当前时间。为了执行此操作必须满足下列两条件之一:
-
进程的有效用户ID必须等于该文件的所有者ID
-
进程对该文件必须具有写许可权
-
-
如果times是非空指针,则存取时间和修改时间被设置为times所指向的结构中的值。此时,进程的有效用户ID必须等于该文件的所有者ID,或者进程必须是一个超级用户进程。对文件只具有写许可权是不够的。
注意,我们不能对更改状态时间st_ctime指定一个值,当调用utime函数时,此字段被自动更新。在某些UNIX版本中,touch命令使用此函数。标准归档程序tar和cpio可选地调用utime,以便将一个文件的时间值设置为将它归档时的值。
想进一步了解如何使用utime函数修改文件存取时间?你可以访问这篇详细的教程。
实例程序4-6使用带O_TRUNC选择项的open函数将文件长度截短为0,但并不更改其存取时间及修改时间。为了做到这一点,首先用stat函数得到这些时间,然后截短文件,最后再用utime函数重置这两个时间。
更详细的示例代码以及深入解析可以参考这里的示例程序4-6。如果你对如何调用系统时间函数感兴趣,推荐你看看这个API函数调用实例。
下载地址
用户评论