indietro

  • utime LISTA

    Cambia i tempi di accesso e di modifica su ogni file di una lista di file. I primi due elementi della lista devono essere i tempi NUMERICI di accesso e modifica, in quest'ordine. Restituisce il numero di file modificati con successo. Il tempo di modifica dell'inode di ogni file viene impostato all'istante corrente. Per esempio, questo codice ha lo stesso effetto del comando Unix touch(1) se il file esiste già ed appartiene all'utente che sta eseguendo il programma:

        #!/usr/bin/perl
        $tempoa = $tempom = time;
        utime $tempoa, $tempom, @ARGV;

    A partire dal perl 5.7.2, se i primi due elementi della lista sono undef, allora la funzione utime(2) nella libreria C verrà chiamata con un secondo argomento null. Sulla maggior parte dei sistemi, questo imposterà i tempi di accesso e modifica del file all'istante corrente (equivalente cioè al suddetto esempio) e funzionerà anche sui file di altri utenti dove avrete i permessi di scrittura:

        utime undef, undef, @ARGV;

    Con NFS userà la data del server NFS, non la data della macchina locale. Se sussiste un problema di sincronizzazione, allora il server NFS e la macchina locale avranno date diverse. Il comando Unix touch in effetti userà questa forma anziché quella mostrata nel primo esempio.

    Va notato che solo passare uno dei primi due elementi come undef risulterà equivalente al passarlo come 0, e non avrà lo stesso effetto descritto quando essi sono entrambi undef. In questo caso verrà fatto scattare un avvertimento per il valore indefinito.