Feof (): differenze tra le versioni
Vai alla navigazione
Vai alla ricerca
Nessun oggetto della modifica |
Nessun oggetto della modifica |
||
| (2 versioni intermedie di uno stesso utente non sono mostrate) | |||
| Riga 2: | Riga 2: | ||
int feof (FILE *__stream) | int feof (FILE *__stream) | ||
ritorna l'indicatore di fine file relativo al parametro ''__stream''. In particolare se il puntatore interno al flusso ''__stream'' è giunto alla fine del file, la funzione ritorna un valore diverso da zero. | ritorna l'indicatore di fine file relativo al parametro ''__stream''. In particolare se il puntatore interno al flusso ''__stream'' è giunto alla fine del file, la funzione ritorna un valore diverso da zero. | ||
Volendola utilizzare direttamente in Gambas, bisognerà dichiararla con ''Extern'', nonché dichiarare la libreria di C: ''libc.so.6'', nella quale la funzione è contenuta: | Volendola utilizzare direttamente in Gambas, bisognerà dichiararla con ''Extern'', nonché dichiarare la libreria di C: ''libc.so.6'', nella quale la funzione è contenuta: | ||
Private <FONT Color=#B22222>Extern feof</font>(__stream As Pointer) As Integer In "libc:6" | Private <FONT Color=#B22222>Extern feof</font>(__stream As Pointer) As Integer In "libc:6" | ||
Mostriamo un semplice esempio pratico, nel quale si leggerà un file byte dopo byte: | Mostriamo un semplice esempio pratico, nel quale si leggerà un file byte dopo byte: | ||
Library "libc:6" | Library "libc:6" | ||
| Riga 20: | Riga 19: | ||
<FONT Color=gray>' ''int feof (FILE *__stream)'' | <FONT Color=gray>' ''int feof (FILE *__stream)'' | ||
' ''Return the EOF indicator for STREAM.''</font> | ' ''Return the EOF indicator for STREAM.''</font> | ||
Private Extern feof(__stream As Pointer) As Integer | Private Extern <FONT Color=#B22222>feof</font>(__stream As Pointer) As Integer | ||
<FONT Color=gray>' ''int fclose (FILE *__stream)'' | <FONT Color=gray>' ''int fclose (FILE *__stream)'' | ||
| Riga 27: | Riga 26: | ||
Public Sub Main() | |||
Dim ptr, p As Pointer | Dim ptr, p As Pointer | ||
Dim i As Integer | Dim i As Integer | ||
p = fopen("<FONT Color=darkgreen>''/percorso/del/file''</font>", "r") | |||
ptr = Alloc(SizeOf(gb.Byte), 1) | |||
Do | |||
fread(ptr, SizeOf(gb.Byte), 1, p) | |||
If <FONT Color=#B22222>feof</font>(p) Then Break | |||
Print Hex(Byte@(ptr), 2) | |||
Wend | |||
Free(ptr) | |||
fclose(p) | |||
End | |||
Versione attuale delle 16:08, 14 giu 2024
La funzione feof(), dichiarata nel file header "/usr/include/stdio.h" come segue:
int feof (FILE *__stream)
ritorna l'indicatore di fine file relativo al parametro __stream. In particolare se il puntatore interno al flusso __stream è giunto alla fine del file, la funzione ritorna un valore diverso da zero.
Volendola utilizzare direttamente in Gambas, bisognerà dichiararla con Extern, nonché dichiarare la libreria di C: libc.so.6, nella quale la funzione è contenuta:
Private Extern feof(__stream As Pointer) As Integer In "libc:6"
Mostriamo un semplice esempio pratico, nel quale si leggerà un file byte dopo byte:
Library "libc:6"
' FILE *fopen (const char *__restrict __filename, const char *__restrict __modes)
' Open a file and create a new stream for it.
Private Extern fopen(__filename As String, __modes As String) As Pointer
' size_t fread (void *__restrict __ptr, size_t __size, size_t __n, FILE *__restrict __stream)
' Read chunks of generic data from STREAM.
Private Extern fread(__ptr As Pointer, __size As Long, __n As Long, __stream As Pointer) As Long
' int feof (FILE *__stream)
' Return the EOF indicator for STREAM.
Private Extern feof(__stream As Pointer) As Integer
' int fclose (FILE *__stream)
' Close STREAM.
Private Extern fclose(__stream As Pointer) As Integer
Public Sub Main()
Dim ptr, p As Pointer
Dim i As Integer
p = fopen("/percorso/del/file", "r")
ptr = Alloc(SizeOf(gb.Byte), 1)
Do
fread(ptr, SizeOf(gb.Byte), 1, p)
If feof(p) Then Break
Print Hex(Byte@(ptr), 2)
Wend
Free(ptr)
fclose(p)
End