Differenze tra le versioni di "Open ()"
(Creata pagina con 'La funzione della libreria di C int open(const char *pathname, int flags) apre il file, individuato dall'argomento ''pathname'', per le operazioni di lettura/scrittura come s...') |
|||
(12 versioni intermedie di uno stesso utente non sono mostrate) | |||
Riga 1: | Riga 1: | ||
La funzione della libreria di C | La funzione della libreria di C | ||
− | int open(const char * | + | 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. | 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. | 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''" è <SPAN style="text-decoration:underline">omonima</span> alla funzione di Gambas "''Open'' ", 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 "''open''" è <SPAN style="text-decoration:underline">omonima</span> alla funzione di Gambas "''Open''", 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 open_C</font>( | + | Private <FONT color=#B22222>Extern open_C</font>(__file As String, oflag As Integer) As Integer In "<FONT color=#B22222>libc:6"</font> <FONT color=#B22222>'''Exec "open"'''</font> |
Semplice esempio di uso in Gambas: | Semplice esempio di uso in Gambas: | ||
− | + | Library "libc:6" | |
− | + | Private Enum O_RDONLY = 0, O_WRONLY, O_RDWR, O_ACCMODE, O_CREAT = &100, O_APPEND = &2000 | |
− | <FONT color=Gray>' ''int open(const char * | + | |
− | ' '' | + | <FONT color=Gray>' ''int open(const char *__file, int __oflag, ...)'' |
− | Private <FONT color=#B22222> | + | ' ''Open FILE and return a new file descriptor for it.''</font> |
+ | Private Extern <FONT color=#B22222>open_C</font>(__file As String, oflag As Integer) As Integer <FONT color=#B22222>'''Exec "open"'''</font> | ||
+ | <FONT color=Gray>' ''int close(int _fd)'' | ||
+ | ' ''Deallocates the file descriptor indicated by fildes.''</font> | ||
+ | Private Extern close_C(_fd As Integer) As Integer Exec "close" | ||
− | + | ||
+ | Public Sub Main() | ||
+ | |||
+ | Dim fd As Integer | ||
<FONT Color=gray>' ''Viene aperto in lettura un file di testo:''</font> | <FONT Color=gray>' ''Viene aperto in lettura un file di testo:''</font> | ||
− | + | <FONT color=#B22222>fd = open_C("<FONT Color=darkgreen>''/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 | |
+ | |||
+ | close_C(fd) | ||
− | + | End |
Versione attuale delle 11:06, 13 giu 2024
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(__file As String, 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, O_ACCMODE, O_CREAT = &100, O_APPEND = &2000 ' 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