Close (): differenze tra le versioni

Da Gambas-it.org - Wikipedia.
Vai alla navigazione Vai alla ricerca
(Creata pagina con "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à d...")
 
Nessun oggetto della modifica
 
(5 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 ''open()''.
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 "''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''.
<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
 
Library "libc:6"
   
   
  <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 open_C(_fd As Integer, oflag As Integer) As Integer Exec "open"
  Private Extern open_C(__file As String, oflag As Integer) As Integer Exec "open"
   
   
  <FONT color=Gray>' ''int close(int _fd)''
  <FONT color=Gray>' ''int close(int _fd)''
Riga 24: Riga 22:
   
   
   
   
  '''Public''' Sub Main()
  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)
  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
  Print fd
   
   
  <FONT color=#B22222>close_C(fd)</font>
  <FONT color=#B22222>close_C(fd)</font>
      
      
  '''End'''
  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 08: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


Riferimenti