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

Da Gambas-it.org - Wikipedia.

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à solo 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
 
' Tronca il file al 1000° byte. Quindi esso sarà formato dai soli primi 1000 byte originari:
 i = truncate("/percorso/del/file", 1000)
 If i < 0 Then Error.Raise("Impossibile troncare il file !") 
  
End


Riferimenti