Differenze tra le versioni di "Fputc ()"

Da Gambas-it.org - Wikipedia.
 
Riga 1: Riga 1:
 
La funzione esterna '''fputc()''', dichiarata nel file header "''/usr/include/stdio.h''" come segue:
 
La funzione esterna '''fputc()''', dichiarata nel file header "''/usr/include/stdio.h''" come segue:
 
  int fputc (int __c, FILE *__stream)
 
  int fputc (int __c, FILE *__stream)
scrive un carattere nello ''stream''. <SUP>&#91;[[#Note|Nota 1]]&#93;</sup>
+
scrive un carattere nello ''stream''. <SUP>&#091;[[#Note|nota 1]]&#093;</sup>
<BR>Poiché il secondo parametro della funzion esterna ''fputc( )'' è 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, chiamata ''fopen( )''.
+
<BR>Poiché il secondo parametro della funzione esterna "fputc()" è 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, chiamata "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 fputc</font>(__c As Integer, __stream As Pointer) As Integer In "libc:6"
 
  Private <FONT Color=#B22222>Extern fputc</font>(__c As Integer, __stream As Pointer) As Integer In "libc:6"
 
+
Mostriamo un esempio pratico, nel quale si scriverà un carattere nello ''standard output'' aprendo in scrittura preliminarmente il ''file-device'': "''/dev/stdout''" con la predetta funzione esterna "fopen()".
 
 
Mostriamo un esempio pratico, nel quale si scriverà un carattere nello ''standard output'' aprendo in scrittura preliminarmente il ''file-device'': "''/dev/stdout''" con la predetta funzione esterna ''fopen( )''.
 
 
  Private Const STDOUT As String = "/dev/stdout"
 
  Private Const STDOUT As String = "/dev/stdout"
 
   
 
   
Riga 27: Riga 26:
 
   
 
   
 
   
 
   
  '''Public''' Sub Main()
+
  Public Sub Main()
 
    
 
    
 
   Dim p As Pointer
 
   Dim p As Pointer
 
    
 
    
  p = fopen(STDOUT, "w")
+
  p = fopen(STDOUT, "w")
 
      
 
      
  <FONT Color=#B22222>fputc</font>(99, p)
+
  <FONT Color=#B22222>fputc</font>(99, p)
 
      
 
      
  fclose(p)
+
  fclose(p)
 
    
 
    
  '''End'''
+
  End
 
 
  
  
  
 
=Note=
 
=Note=
[1] La funzione esterna ''putc( )'' possiede sintassi e modalità d'uso in Gambas sostanzialmente identiche a quelle della funzione esterna ''fputc( )''.
+
[1] La funzione esterna "putc()" possiede sintassi e modalità d'uso in Gambas sostanzialmente identiche a quelle della funzione esterna "fputc()".
 
 
  
  

Versione attuale delle 16:19, 14 giu 2024

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

int fputc (int __c, FILE *__stream)

scrive un carattere nello stream. [nota 1]
Poiché il secondo parametro della funzione esterna "fputc()" è 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, chiamata "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 fputc(__c As Integer, __stream As Pointer) As Integer In "libc:6"

Mostriamo un esempio pratico, nel quale si scriverà un carattere nello standard output aprendo in scrittura preliminarmente il file-device: "/dev/stdout" con la predetta funzione esterna "fopen()".

Private Const STDOUT As String = "/dev/stdout"


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 fputc (int __c, FILE *__stream)
' Write a character to STREAM.
Private Extern fputc(__c As Integer, __stream As Pointer) As Integer

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


Public Sub Main()
 
 Dim p As Pointer
 
 p = fopen(STDOUT, "w")
   
 fputc(99, p)
   
 fclose(p)
  
End


Note

[1] La funzione esterna "putc()" possiede sintassi e modalità d'uso in Gambas sostanzialmente identiche a quelle della funzione esterna "fputc()".


Riferimenti