Troncare un file ad una determinata dimensione con la funzione esterna truncate()

Da Gambas-it.org - Wikipedia.
Versione del 16 lug 2016 alle 10:31 di Vuott (Discussione | contributi) (Creata pagina con "Se si intende troncare un file ad un byte specifico, in modo che il file medesimo assuma una determinata dimensione, è possibile utilizzare la funzione esterna ''truncate()''...")

(diff) ← Versione meno recente | Versione attuale (diff) | Versione più recente → (diff)

Se si intende troncare un file ad un byte specifico, in modo che il file medesimo assuma una determinata dimensione, è possibile utilizzare la funzione esterna truncate() dichiarata nel file header "/usr/include/unistd.h" .

In sostanza la funzione esterna truncate( ) preserverà i byte del file a cominciare dal primo byte (di indice zero) per una quantità di byte ad esso successivi pari al valore indicato nel secondo argomento della funzione esterna medesima. Quindi, se ad esempio il file è formato da 100 byte e se il valore del secondo argomento della fuzione truncate( ) è 45, al termine il file in oggetto sarà costituito dai suoi primi 45 byte, assumendo così una dimensione di 45 byte.


Mostriamo un semplice esempio, nel quale si dovrà prendere in considerazione un file avente una dimensione iniziale superiore a 1000 byte.

Library "libc:6"

' int truncate (const char *__file, __off_t __length)
' Truncate FILE to LENGTH bytes.
Private Extern truncate(__file As String, __length As Long) As Integer


Public Sub Main()

 Dim i As Integer
 
<ONT Color=gray>' Consente la lettura e la scrittura del file al solo proprietario:</font>
  i = truncate("/tmp/a", 4)
  If i < 0 Then Error.Raise("Impossibile troncare il file !") 
  
End



Riferimenti