Open (): differenze tra le versioni
Nessun oggetto della modifica |
Nessun oggetto della modifica |
||
| Riga 11: | Riga 11: | ||
Semplice esempio di uso in Gambas: | Semplice esempio di uso in Gambas: | ||
Library "libc:6" | |||
Private Enum O_RDONLY = 0, O_WRONLY, O_RDWR | Private Enum O_RDONLY = 0, O_WRONLY, O_RDWR | ||
| Riga 16: | Riga 18: | ||
<FONT color=Gray>' ''int open(const char *__file, int __oflag, ...)'' | <FONT color=Gray>' ''int open(const char *__file, int __oflag, ...)'' | ||
' ''Open FILE and return a new file descriptor for it.''</font> | ' ''Open FILE and return a new file descriptor for it.''</font> | ||
Private Extern <FONT color=#B22222>open_C</font>(_fd As Integer, oflag As Integer) As Integer | Private Extern <FONT color=#B22222>open_C</font>(_fd As Integer, oflag As Integer) As Integer <FONT color=#B22222>'''Exec "open"'''</font> | ||
<FONT color=Gray>' ''int close(int _fd)'' | <FONT color=Gray>' ''int close(int _fd)'' | ||
' ''Deallocates the file descriptor indicated by fildes.''</font> | ' ''Deallocates the file descriptor indicated by fildes.''</font> | ||
Private Extern close_C(_fd As Integer) As Integer | Private Extern close_C(_fd As Integer) As Integer Exec "close" | ||
| Riga 30: | Riga 32: | ||
<FONT color=#B22222>fd = open_C("<FONT Color=gray>''/percorso/del/file''</font>", O_RDONLY)</font> | <FONT color=#B22222>fd = open_C("<FONT Color=gray>''/percorso/del/file''</font>", O_RDONLY)</font> | ||
<FONT Color=gray>' '' | <FONT Color=gray>' ''Per questo esempio viene semplicemente mostrato il numero del "file descriptor" del file aperto:''</font> | ||
Print fd | Print fd | ||
Versione delle 21:24, 1 mar 2016
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(_fd As Integer, 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