1. 首页
  2. 考试认证
  3. 其它
  4. utime函数-hds ams 2500用户手册

utime函数-hds ams 2500用户手册

上传者: 2024-07-22 18:20:00上传 PDF文件 17.98MB 热度 15次

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。

  1. 如果times是一个空指针,则存取时间和修改时间两者都设置为当前时间。为了执行此操作必须满足下列两条件之一:

    • 进程的有效用户ID必须等于该文件的所有者ID

    • 进程对该文件必须具有写许可权

  2. 如果times是非空指针,则存取时间和修改时间被设置为times所指向的结构中的值。此时,进程的有效用户ID必须等于该文件的所有者ID,或者进程必须是一个超级用户进程。对文件只具有写许可权是不够的。

注意,我们不能对更改状态时间st_ctime指定一个值,当调用utime函数时,此字段被自动更新。在某些UNIX版本中,touch命令使用此函数。标准归档程序tar和cpio可选地调用utime,以便将一个文件的时间值设置为将它归档时的值。

想进一步了解如何使用utime函数修改文件存取时间?你可以访问这篇详细的教程

实例程序4-6使用带O_TRUNC选择项的open函数将文件长度截短为0,但并不更改其存取时间及修改时间。为了做到这一点,首先用stat函数得到这些时间,然后截短文件,最后再用utime函数重置这两个时间。

更详细的示例代码以及深入解析可以参考这里的示例程序4-6。如果你对如何调用系统时间函数感兴趣,推荐你看看这个API函数调用实例

下载地址
用户评论