utime(2)

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

LIBRARY
Standard C library (libc, -lc)

SINTASSI
#include <utime.h>

int utime(const char *filename,
          const struct utimbuf *_Nullable times);

#include <sys/time.h>

int utimes(const char *filename,
          const struct timeval times[_Nullable 2]);

DESCRIZIONE
Nota: le applicaizoni moderne potrebbero preferire le interfacce descritte in utimensat(2).

The utime() system call changes the access and modification times of the inode specified by filename to the actime and modtime fields of times respectively. The status change time (ctime) will be set to the current time, even if the other time stamps don't actually change.

Se times è NULL, allora gli orari di accesso e modifica del file sono impostati a quelli correnti.

Cambiare le marcature orarie è 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 le marcature orarie 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. Gli elementi di questo array sono strutture timeval, che permettono una precisione di 1 microsecondo nello specificare data e ora. 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.

VALORE RESTITUITO
In caso di successo restituisce zero. In caso di errore restituisce -1, e errno verrà impostato per indicare l'errore.

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.

STANDARDS
utime(): SVr4, POSIX.1-2001. POSIX.1-2008 marca utime() come obsoleto.

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.

VEDERE ANCHE
chattr(1), touch(1), futimesat(2), stat(2), utimensat(2), futimens(3), futimes(3), inode(7)

TRADUZIONE
La traduzione italiana di questa pagina di manuale è stata creata da Goffredo Baroncelli <kreijack@usa.net>, Giulio Daprelà <giulio@pluto.it>, Elisabetta Galli <lab@kkk.it> e Marco Curreli <marcocurreli@tiscali.it>

Questa traduzione è documentazione libera; leggere la GNU General Public License Versione 3 (https://www.gnu.org/licenses/gpl-3.0.html) o successiva per le condizioni di copyright. Non ci assumiamo alcuna responsabilità.

Per segnalare errori nella traduzione di questa pagina di manuale inviare un messaggio a pluto-ildp@lists.pluto.it.