Differenze tra le versioni di "Troncare un file ad una determinata dimensione con la funzione esterna truncate()"

Da Gambas-it.org - Wikipedia.
(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()''...")
 
Riga 1: Riga 1:
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" .
+
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.
+
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.
  
  
Riga 16: Riga 16:
 
   Dim i As Integer
 
   Dim i As Integer
 
    
 
    
  <ONT Color=gray>' ''Consente la lettura e la scrittura del file al solo proprietario:''</font>
+
  <ONT Color=gray>' ''Tronca il file al 1000° byte. Quindi esso sarà formato dai primi 1000 byte originari:''</font>
   i = truncate("/tmp/a", 4)
+
   i = truncate("<FONT Color=gray>''/percorso/del/file''</font>", 1000)
 
   If i < 0 Then Error.Raise("Impossibile troncare il file !")  
 
   If i < 0 Then Error.Raise("Impossibile troncare il file !")  
 
    
 
    

Versione delle 10:33, 16 lug 2016

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



Riferimenti