Open ()
La funzione della libreria di C
int open(const char *__file, int __oflag, ...)
apre il file, individuato dall'argomento pathname, per le operazioni di lettura/scrittura come specificato nell'argomento flags. Essa restituisce il file-descriptor come collegamento al file aperto in lettura/scrittura. Tale file-descriptor è utilizzato da altre funzioni di I/O per fare riferimento al file aperto, al quale esso si riferisce.
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 "open" è omonima alla funzione di Gambas "Open", 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 open_C(_fd As Integer, oflag As Integer) As Integer In "libc:6" Exec "open"
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) ' Deallocates the file descriptor indicated by fildes. 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) ' Per questo esempio viene semplicemente mostrato il numero del "file descriptor" del file aperto: Print fd close_C(fd) End