UTIME

Section: Linux Programmer's Manual (2)
Updated: 23 maggio 2008
Index Return to Main Contents
 

NOME

utime, utimes - cambia l'ultimo orario di accesso e di modifica di un file  

SINTASSI

#include <sys/types.h>

#include <utime.h> int utime(const char *filename, const struct utimbuf *times); #include <sys/time.h> int utimes(const char *filename, const struct timeval times[2]);
 

DESCRIZIONE

La chiamata di sistema utime() cambia le date di accesso e modifica dell'inode specificato da filename rispettivamente con quelle contenute nei campi actime e modtime di times.

Se times è NULL, allora le date di accesso e modifica del file sono impostate a quelle correnti.

Cambiare data e ora è permesso quando: o il processo ha i privilegi appropriati, o la user ID effettiva dell'utente è uguale alla user ID del file, o times è NULL e il processo ha permessi di scrittura sul file.

La struttura utimbuf è la seguente:

struct utimbuf {
    time_t actime;       /* ora di accesso */
    time_t modtime;      /* ora di modifica */
};

La chiamata di sistema utime() permette di specificare data e ora con una risoluzione di 1 secondo.

La chiamata di sistema utimes() è simile, ma gli argomenti di times fanno riferimento ad un array, non a una struttura, e la struttura permette di specificare data e ora con la precisione di un 1 microsecondo. La struttura timeval è la seguente:

struct timeval {
    long tv_sec;        /* secondi */
    long tv_usec;       /* microsecondi */
};

times[0] specifica la nuova ora di accesso, e times[1] specifica la nuova ora di modifica. Se times è NULL, analogamente a utime(), le date di accesso e modifica del file sono impostate a quelle correnti.  

VALORI RESTITUITI

In caso di successo viene restituito zero. In caso di errore viene restituito -1 e errno contiene il codice di errore verificatosi.  

ERRORI

EACCES
Il permesso di ricerca è negato per una delle directory nel prefisso del percorso di path (vedere anche path_resolution(7)).
EACCES
times è NULL, l'ID effettivo dell'utente chiamante non corrisponde a quello del proprietario del file, il chiamante non ha accesso in scrittura al file, e il chiamante non ha i privilegi necessari (Linux: non ha capacità CAP_DAC_OVERRIDE o CAP_FOWNER).
ENOENT
filename non esiste.
EPERM
times non è NULL, l'UID effettivo del chiamante non corrisponde al proprietario del file, e il chiamante non ha i privilegi necessari (Linux: non ha capacità CAP_FOWNER)
EROFS
path risiede su un filesystem in sola lettura.
 

CONFORME A

utime(): SVr4, POSIX.1-2001.
utimes(): 4.3BSD, POSIX.1-2001.  

NOTE

Linux non permette di cambiare data e ora su un file immutabile, o di impostarle a qualcosa di diverso dall'ora corrente in un file di tipo append-only.

In libc4 e libc5, utimes() è solo un wrapper per utime() e quindi non permette una risoluzione inferiore al secondo.

POSIX.1-2001 annota utimes() come legacy, che è strano, poiché fornisce più funzionalità di utime().  

VEDERE ANCHE

chattr(1), futimesat(2), stat(2), futimes(3)  

COLOPHON

Questa pagina fa parte del rilascio 2.80 del progetto man-pages di Linux. Si può trovare una descrizione del progetto, e informazioni su come riportare bachi, presso http://www.kernel.org/doc/man-pages/. Per la traduzione in italiano si può fare riferimento a http://www.pluto.it/ildp/collaborare/


 

Index

NOME
SINTASSI
DESCRIZIONE
VALORI RESTITUITI
ERRORI
CONFORME A
NOTE
VEDERE ANCHE
COLOPHON

This document was created by man2html, using the manual pages.
Time: 23:03:52 GMT, June 17, 2008