Close (): differenze tra le versioni
Vai alla navigazione
Vai alla ricerca
Nessun oggetto della modifica |
Nessun oggetto della modifica |
||
| Riga 4: | Riga 4: | ||
Volendola utilizzare in Gambas, bisognerà dichiararla con ''Extern'', nonché dichiarare la libreria di C: ''libc.so.6'', nella quale la funzione è contenuta. Da sottolineare che, poiché questa funzione esterna di C "''close''" è <SPAN style="text-decoration:underline">omonima</span> alla funzione di Gambas "''Close''", bisognerà assegnarle un nome a piacere, ma si dovrà anche richiamare il suo vero nome con il comando ''Exec''. | Volendola utilizzare in Gambas, bisognerà dichiararla con ''Extern'', nonché dichiarare la libreria di C: ''libc.so.6'', nella quale la funzione è contenuta. Da sottolineare che, poiché questa funzione esterna di C "''close( )''" è <SPAN style="text-decoration:underline">omonima</span> alla funzione di Gambas "''Close''", bisognerà assegnarle un nome a piacere, ma si dovrà anche richiamare il suo vero nome con il comando ''Exec''. | ||
<BR>Dunque avremo ad esempio: | <BR>Dunque avremo ad esempio: | ||
Private <FONT color=#B22222>Extern close_C</font>(_fd As Integer) As Integer In "<FONT color=#B22222>libc:6"</font> <FONT color=#B22222>'''Exec "close"'''</font> | Private <FONT color=#B22222>Extern close_C</font>(_fd As Integer) As Integer In "<FONT color=#B22222>libc:6"</font> <FONT color=#B22222>'''Exec "close"'''</font> | ||
Versione delle 19:12, 10 giu 2017
La funzione della libreria di C
int close(int _fd)
Close the file descriptor precedentemente aperto con la funzione open().
Volendola utilizzare in Gambas, bisognerà dichiararla con Extern, nonché dichiarare la libreria di C: libc.so.6, nella quale la funzione è contenuta. Da sottolineare che, poiché questa funzione esterna di C "close( )" è omonima alla funzione di Gambas "Close", bisognerà assegnarle un nome a piacere, ma si dovrà anche richiamare il suo vero nome con il comando Exec.
Dunque avremo ad esempio:
Private Extern close_C(_fd As Integer) As Integer In "libc:6" Exec "close"
Semplice esempio di uso in Gambas:
Library "libc:6"
Private Enum O_RDONLY = 0, O_WRONLY, O_RDWR
' int open(const char *__file, int __oflag, ...)
' Open FILE and return a new file descriptor for it.
Private Extern open_C(__file As String, oflag As Integer) As Integer Exec "open"
' int close(int _fd)
' Close the file descriptor FD.
Private Extern close_C(_fd As Integer) As Integer Exec "close"
Public Sub Main()
Dim fd As Integer
' Viene aperto in lettura un file di testo:
fd = open_C("/percorso/del/file", O_RDONLY)
' Viene semplicemente mostrato il numero del "file descriptor" del file appena sopra aperto:
Print fd
close_C(fd)
End