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 6: Riga 6:
 
Va tenuto conto che:
 
Va tenuto conto che:
 
* la risoluzione, accettata dai due membri della Struttura ''utimbuf'', è il minuto ''secondo''.
 
* la risoluzione, accettata dai due membri della Struttura ''utimbuf'', è il minuto ''secondo''.
* la data di partenza è impostata al ''01/01/1970 01:00:01''. 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.
+
* la data di partenza è impostata al ''01/01/1970 00:00:00''. 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''.
 
* 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.
 
* è possibile impostare anche valori negativi. In tal caso la data impostata sarà inferiore a quella di partenza.
Riga 36: Riga 36:
 
      
 
      
 
     With ut
 
     With ut
      .actime = 1    <FONT Color=gray>' ''Cambia la data di accesso al file''</font>
+
<FONT Color=gray>' ''Cambia la data di accesso al file a 1 secondo dalla data e dall'orario di partenza:''</font>
       .modtime = 59 <FONT Color=gray>' ''Cambia la data di modifica del file''</font>
+
       .actime = 1
 +
  <FONT Color=gray>' ''Cambia la data di accesso al file a 59 secondi dalla data e dall'orario di partenza:''</font>
 +
      .modtime = 59
 
     End With
 
     End With
 
      
 
      

Versione delle 08:43, 15 giu 2016

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. 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 "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 dinamica 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:
     .actime = 1
' Cambia la data di accesso al file a 59 secondi dalla data e dall'orario di partenza:
     .modtime = 59
   End With
   
   utime(s, ut)
  
End



Riferimenti