utime函数-鸿鹄论坛_华为认证h35-211-hcnp-access network题库
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 */
};
此结构中的两个时间值是日历时间,表示自1970年1月1日00:00以来的秒数。函数的操作以及其执行所要求的权限取决于times参数是否为NULL。
(1) 如果times是一个空指针,则存取时间和修改时间都设置为当前时间。为了执行此操作必须满足以下两条件之一:
(a) 进程的有效用户ID必须等于该文件的所有者ID;
(b) 进程对该文件必须具有写权限。
(2) 如果times是非空指针,则存取时间和修改时间被设置为times所指向的结构中的值。此时,进程的有效用户ID必须等于该文件的所有者ID,或者进程必须是一个超级用户进程。仅对文件具有写权限是不够的。注意,不能对更改状态时间st_ctime指定值,当调用utime函数时,此字段被自动更新。
在某些UNIX版本中,touch命令使用此函数。另外,标准归档程序tar和cpio可选地调用utime,以将文件的时间值设置为归档时的值。实例程序4-6使用带O_TRUNC选项的open函数将文件长度截短为0,但并不更改其存取时间及修改时间。为了实现这一点,首先用stat函数得到这些时间,然后截短文件,最后再用utime函数重置这两个时间。
为了更好地理解和应用utime函数,可以参考以下资源:
用户评论