Close ()

Da Gambas-it.org - Wikipedia.

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



Riferimenti