futimes(3)

futimes3

Change file timestamps

Usage

#include <sys/time.h>

int futimes(int fd, const struct timeval tv[2]); int lutimes(const char *path, const struct timeval tv[2]);

Feature Test Macro Requirements for glibc (see feature_test_macros(7)):

futimes(), lutimes():

    Since glibc 2.19:
        _DEFAULT_SOURCE
    glibc 2.19 and earlier:
        _BSD_SOURCE

Library

Standard C library (libc, -lc)

Overview

futimes() changes the access and modification times of a file in the same way as utimes(2), with the difference that the file whose timestamps are to be changed is specified via a file descriptor, fd, rather than via a pathname.

lutimes() changes the access and modification times of a file in the same way as utimes(2), with the difference that if path refers to a symbolic link, then the link is not dereferenced: instead, the timestamps of the symbolic link are changed.

Return value

On success, zero is returned. On error, -1 is returned, and errno is set to indicate the error.

Errors

Errors are as for utimes(2), with the following additions for futimes():

EBADF

fd is not a valid file descriptor.

ENOSYS

The /proc filesystem could not be accessed.

The following additional error may occur for lutimes():

ENOSYS

The kernel does not support this call; Linux 2.6.22 or later is required.

Attributes

For an explanation of the terms used in this section, see attributes(7).

InterfaceAttributeValue
futimes(), lutimes()Thread safetyMT-Safe

Notes

lutimes() is implemented using the utimensat(2) system call.

Releases

11 releases since Debian 4.0 (Etch); the text changed 10 times.

  1. 4.0
  2. 5.0
  3. 6.0
  4. 7
  5. 8
  6. 9
  7. 10
  8. 11
  9. 12
  10. 13
  11. Arch

Standards

Linux, BSD.

History

futimes()

glibc 2.3.

lutimes()

glibc 2.6.

From man-pages 6.19-1 in Arch Linux 2026-11-01. Parsed by carta from the page's man source.