Differenze tra le versioni di "Modificare le date di accesso e di modifica dell'inode di un file con le risorse esterne di utime.h"
Da Gambas-it.org - Wikipedia.
Riga 34: | Riga 34: | ||
With ut | With ut | ||
− | <FONT Color=gray>' ''Cambia la data di accesso al file a 1 secondo dalla data e dall'orario di partenza:''</font> | + | <FONT Color=gray>' ''Cambia la data di accesso al file a 1 secondo dalla data e dall'orario di partenza (Tempo Unix):''</font> |
.actime = 1 | .actime = 1 | ||
− | <FONT Color=gray>' ''Cambia la data di accesso al file a 59 secondi dalla data e dall'orario di partenza:''</font> | + | <FONT Color=gray>' ''Cambia la data di accesso al file a 59 secondi dalla data e dall'orario di partenza (Tempo Unix):''</font> |
.modtime = 59 | .modtime = 59 | ||
End With | End With |
Versione delle 19:33, 22 apr 2023
Le date di accesso e di modifica di un file sono contenute nell'inode nel file system.
E' possibile modificare tali date, purché se ne abbia il permesso, mediante le risorse fornite dalla libreria libc.so.6, e dichiarate nel file header utime.h .
Va tenuto conto che:
- la risoluzione, accettata dai due membri della Struttura utimbuf, è il minuto secondo.
- la data di partenza è impostata al 01/01/1970 00:00:00 (anche chiamata Tempo Unix). Ciò significa che, assegnando ad un membro della predetta Struttura il valore 1000000, si imposta la data corrispondente a 1000000 di secondi trascorsi dalla data e dall'orario di partenza (01/01/1970 00:00:00).
- assegnando il valore 0 (zero) ad un membro della Struttura utimbuf, si otterrà il risultato: sconosciuto.
- è possibile impostare anche valori negativi. In tal caso la data impostata sarà inferiore a quella di partenza.
- se il secondo argomento della funzione esterna "utime()" è impostato a Null, allora le date di accesso e di modifica del file sono impostate alla data corrente.
E' necessario richiamare in Gambas la predetta libreria condivisa: "libc.so.6 ".
Mostriamo un esempio essenziale:
Library "libc:6" Public Struct utimbuf actime As Long modtime As Long End Struct ' int utime (const char *__file, const struct utimbuf *__file_times) ' Set the access and modification times of FILE to those given in *FILE_TIMES. ' If FILE_TIMES is NULL, set them to the current time. Private Extern utime(__file As String, __file_times As Utimbuf) As Integer Public Sub Main() Dim ut As New Utimbuf Dim s As String s = "/percorso/del/file" With ut ' Cambia la data di accesso al file a 1 secondo dalla data e dall'orario di partenza (Tempo Unix): .actime = 1 ' Cambia la data di accesso al file a 59 secondi dalla data e dall'orario di partenza (Tempo Unix): .modtime = 59 End With utime(s, ut) End