Differenze tra le versioni di "Close ()"

Da Gambas-it.org - Wikipedia.
Riga 2: Riga 2:
 
  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''.
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 delle 08:10, 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