Differenze tra le versioni di "Close ()"
Da Gambas-it.org - Wikipedia.
(4 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 close(int _fd) | int close(int _fd) | ||
− | Close the file descriptor precedentemente aperto con la funzione | + | 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()" è <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 " | ||
<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> | ||
Riga 10: | Riga 9: | ||
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 | ||
− | |||
− | |||
− | |||
<FONT color=Gray>' ''int open(const char *__file, int __oflag, ...)'' | <FONT color=Gray>' ''int open(const char *__file, int __oflag, ...)'' | ||
Riga 24: | Riga 22: | ||
− | + | Public Sub Main() | |
Dim fd As Integer | 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> | ||
− | + | fd = open_C("<FONT Color=gray>''/percorso/del/file''</font>", O_RDONLY) | |
<FONT Color=gray>' ''Viene semplicemente mostrato il numero del "file descriptor" del file appena sopra aperto:''</font> | <FONT Color=gray>' ''Viene semplicemente mostrato il numero del "file descriptor" del file appena sopra aperto:''</font> | ||
− | + | Print fd | |
− | + | <FONT color=#B22222>close_C(fd)</font> | |
− | + | End | |
+ | |||
+ | |||
+ | |||
+ | =Riferimenti= | ||
+ | * https://linux.die.net/man/2/close | ||
+ | * https://linux.die.net/man/3/close | ||
+ | * https://www.gnu.org/software/libc/manual/html_node/Opening-and-Closing-Files.html |
Versione attuale delle 07:11, 13 giu 2024
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