utime(2)

NUME
utime, utimes - modifică ultima oră de acces și de modificare a fișierelor

BIBLIOTECA
Biblioteca C standard (libc, -lc)

SINOPSIS
#include <utime.h>

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

#include <sys/time.h>

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

DESCRIERE
Notă: aplicațiile moderne pot prefera să utilizeze interfețele descrise în utimensat(2).

Apelul de sistem utime() modifică timpii de acces și de modificare ai nodului-i specificat de path în câmpurile actime și, respectiv, modtime din times. Timpul de modificare a stării (ctime) va fi stabilit la ora curentă, chiar dacă celelalte marcaje de timp nu se modifică efectiv.

Dacă times este NULL, atunci orele de acces și de modificare a fișierului sunt stabilite la ora curentă.

Modificarea marcajelor temporale este permisă atunci când: fie procesul are privilegiile corespunzătoare, fie ID-ul efectiv al utilizatorului este egal cu ID-ul utilizatorului din fișier, fie times este NULL și procesul are permisiunea de scriere pentru fișier.

Structura utimbuf este:

    struct utimbuf {
        time_t actime;       /* ora și data accesului */
        time_t modtime;      /* ora și data modificării */
    };

Apelul de sistem utime() permite specificarea marcajelor de timp cu o rezoluție de 1 secundă.

Apelul de sistem utimes() este similar, dar argumentul times se referă la un matrice în loc de o structură. Elementele acestei matrice sunt structuri timeval, care permit o precizie de 1 microsecundă pentru specificarea marcajelor de timp. Structura timeval este:

    struct timeval {
        long tv_sec;        /* secunde */
        long tv_usec;       /* microsecunde */
    };

times[0] specifică noul timp de acces, iar times[1] specifică noul timp de modificare. Dacă times este NULL, atunci, în mod analog cu utime(), orele de acces și de modificare ale fișierului sunt stabilite la ora curentă.

VALOAREA RETURNATĂ
În caz de succes, se returnează zero. În caz de eroare, se returnează -1, iar errno este configurată pentru a indica eroarea.

ERORI-IEȘIRE

EACCES
    Permisiunea de căutare este refuzată pentru unul dintre directoarele din prefixul de rută path (a se vedea, de asemenea, path_resolution(7).)

EACCES
    times este NULL, ID-ul de utilizator efectiv al apelantului nu se potrivește cu cel al proprietarului fișierului, apelantul nu are acces de scriere la fișier, iar apelantul nu este privilegiat (Linux: nu are capacitatea CAP_DAC_OVERRIDE sau CAP_FOWNER).

EFAULT
    path indică către o adresă nevalidă.

ENOENT
    path nu există.

EPERM
    times nu este NULL, UID-ul efectiv al apelantului nu se potrivește cu cel al proprietarului fișierului, iar apelantul nu este privilegiat (Linux: nu are capacitatea CAP_FOWNER).

EROFS
    path se află pe un sistem de fișiere numai-pentru-citire.

STANDARDE

utime()
    Niciunul.

utimes()
    POSIX.1-2024.

ISTORIC

utime()
    SVr4, POSIX.1-2001. Obsoletă în POSIX.1-2008. Eliminată în POSIX.1-20248.

utimes()
    4.3BSD, POSIX.1-2001.

NOTE
Linux nu permite modificarea marcajelor de timp într-un fișier imuabil sau stabilirea marcajelor de timp la o altă valoare decât ora curentă într-un fișier de tip „doar-adăugare”.

CONSULTAȚI ȘI
chattr(1), touch(1), futimesat(2), stat(2), utimensat(2), futimens(3), futimes(3), inode(7)

TRADUCERE
Traducerea în limba română a acestui manual a fost făcută de Remus-Gabriel Chelu <remusgabriel.chelu@disroot.org>

Această traducere este documentație gratuită; citiți Licența publică generală GNU Versiunea 3 (https://www.gnu.org/licenses/gpl-3.0.html) sau o versiune ulterioară cu privire la condiții privind drepturile de autor. NU se asumă NICIO RESPONSABILITATE.

Dacă găsiți erori în traducerea acestui manual, vă rugăm să trimiteți un e-mail la translation-team-ro@lists.sourceforge.net.