Differenze tra le versioni di "Fputs ()"

Da Gambas-it.org - Wikipedia.
(Creata pagina con "La funzione esterna '''fputs()''', dichiarata nel file header "''/usr/include/stdio.h''" come segue: int fputs (const char *__restrict __s, FILE *__restrict __stream) scrive...")
 
 
Riga 2: Riga 2:
 
  int fputs (const char *__restrict __s, FILE *__restrict __stream)
 
  int fputs (const char *__restrict __s, FILE *__restrict __stream)
 
scrive una stringa nello ''stream''.
 
scrive una stringa nello ''stream''.
<BR>Poiché il secondo parametro della funzion esterna ''fputs( )'' è di tipo ''FILE'', però diverso dal tipo ''File'' nativo di Gambas, esso andrà gestito con una variabile di tipo ''Puntatore'' restituita da un'altra funzione esterna, ossia dalla funzione esterna ''fopen( )''.
+
<BR>Poiché il secondo parametro della funzion esterna "fputs()" è di tipo ''FILE'', però diverso dal tipo ''File'' nativo di Gambas, esso andrà gestito con una variabile di tipo ''Puntatore'' restituita da un'altra funzione esterna, ossia dalla funzione esterna "fopen()".
 +
 
  
 
Volendola utilizzare direttamente in Gambas, bisognerà dichiararla con ''Extern'', nonché dichiarare la libreria di C: ''libc.so.6'', nella quale la funzione è contenuta:
 
Volendola utilizzare direttamente in Gambas, bisognerà dichiararla con ''Extern'', nonché dichiarare la libreria di C: ''libc.so.6'', nella quale la funzione è contenuta:
 
  Private <FONT Color=#B22222>Extern fputs</font>(__s As String, __stream As Pointer) As Integer In "libc:6"
 
  Private <FONT Color=#B22222>Extern fputs</font>(__s As String, __stream As Pointer) As Integer In "libc:6"
 
 
 
Mostriamo un esempio pratico, nel quale si scriverà un carattere in un file che sarà aperto in scrittura con la predetta funzione esterna ''fopen( )''.
 
Mostriamo un esempio pratico, nel quale si scriverà un carattere in un file che sarà aperto in scrittura con la predetta funzione esterna ''fopen( )''.
 
  Library "libc:6"
 
  Library "libc:6"
Riga 24: Riga 23:
 
   
 
   
 
   
 
   
  '''Public''' Sub Main()
+
  Public Sub Main()
 
    
 
    
 
   Dim s As String
 
   Dim s As String
 
   Dim p As Pointer
 
   Dim p As Pointer
 +
 
 +
  s = "testo qualsiasi"
 
    
 
    
    
+
   p = fopen("/tmp/prova", "w")
  s = "testo qualsiasi"
 
 
 
  p = fopen("/tmp/prova", "w")
 
 
      
 
      
  <FONT Color=#B22222>fputs</font>(s, p)
+
  <FONT Color=#B22222>fputs</font>(s, p)
 
      
 
      
  fclose(p)
+
  fclose(p)
 
    
 
    
  '''End'''
+
  End
 
 
  
  

Versione attuale delle 16:20, 14 giu 2024

La funzione esterna fputs(), dichiarata nel file header "/usr/include/stdio.h" come segue:

int fputs (const char *__restrict __s, FILE *__restrict __stream)

scrive una stringa nello stream.
Poiché il secondo parametro della funzion esterna "fputs()" è di tipo FILE, però diverso dal tipo File nativo di Gambas, esso andrà gestito con una variabile di tipo Puntatore restituita da un'altra funzione esterna, ossia dalla funzione esterna "fopen()".


Volendola utilizzare direttamente in Gambas, bisognerà dichiararla con Extern, nonché dichiarare la libreria di C: libc.so.6, nella quale la funzione è contenuta:

Private Extern fputs(__s As String, __stream As Pointer) As Integer In "libc:6"

Mostriamo un esempio pratico, nel quale si scriverà un carattere in un file che sarà aperto in scrittura con la predetta funzione esterna fopen( ).

Library "libc:6"

' FILE *fopen (const char *__restrict __filename, const char *__restrict __modes)
' Open a file and create a new stream for it.
Private Extern fopen(__filename As String, __modes As String) As Pointer

' int fputs (const char *__restrict __s, FILE *__restrict __stream)
' Write a string to STREAM.
Private Extern fputs(__s As String, __stream As Pointer) As Integer

' int fclose (FILE *__stream)
' Close STREAM.
Private Extern fclose(__stream As Pointer) As Integer


Public Sub Main()
 
 Dim s As String
 Dim p As Pointer
  
 s = "testo qualsiasi"
 
 p = fopen("/tmp/prova", "w")
   
 fputs(s, p)
   
 fclose(p)
  
End


Riferimenti