Differenze tra le versioni di "Close ()"

Da Gambas-it.org - Wikipedia.
 
(Una versione intermedia di uno stesso utente non è mostrata)
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 23: 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
 
 
  
  

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