Voltar à lista
Linux x86_64Sistema de arquivos#280

utimensat

Altera os timestamps de acesso e modificação de um arquivo, com resolução de nanossegundos, relativo a um descritor de diretório.

Descrição

Forma moderna e recomendada de ajustar timestamps: suporta UTIME_NOW e UTIME_OMIT por campo (definir para o horário atual, ou não alterar aquele timestamp especificamente), além de operar relativa a `dirfd` como o resto da família *at().

man 2Desde o kernel 2.6.22

Assinatura

int utimensat(
    int dirfd,
    const char * pathname,
    const struct timespec[2] times,
    int flags
);

Parâmetros

ParâmetroTipoDescrição
dirfdintDescritor do diretório base, ou AT_FDCWD.
pathnameconst char *Caminho, absoluto, relativo a `dirfd`, ou NULL para operar sobre o próprio `dirfd`.
timesconst struct timespec[2]Novos timestamps de acesso e modificação; UTIME_NOW/UTIME_OMIT por campo.
flagsintAT_SYMLINK_NOFOLLOW.

Registradores (x86_64)

RegistradorPapelArgumento
raxnúmero da syscall (chamada) / valor de retorno (após SYSCALL)
rdiargumento 1dirfdint
rsiargumento 2pathnameconst char *
rdxargumento 3timesconst struct timespec[2]
r10argumento 4flagsint

Valor de retorno

0 em sucesso; -1 em erro, com errno definido.

Códigos de erro (errno)

EACCES(13)
Permissão negada.
EBADF(9)
Descritor de arquivo inválido.
EINVAL(22)
Argumento inválido.
ENOENT(2)
Arquivo ou diretório inexistente.
EPERM(1)
Operação não permitida (falta de privilégio).
EROFS(30)
Sistema de arquivos somente leitura.

Relacionadas