Differenze tra le versioni di "Fputc ()"

Da Gambas-it.org - Wikipedia.
(Creata pagina con "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''....")
 
 
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''.
+
scrive un carattere nello ''stream''. <SUP>&#91;[[#Note|Nota 1]]&#93;</sup>
<BR>Poiché il secondo parametro della funzion eesterna ''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 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( )''.
  
 
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:
Riga 38: Riga 38:
 
    
 
    
 
  '''End'''
 
  '''End'''
 +
 +
 +
 +
 +
=Note=
 +
[1] La funzione esterna ''putc( )'' possiede sintassi e modalità d'uso in Gambas sostanzialmente identiche a quelle della funzione esterna ''fputc( )''.
  
  

Versione attuale delle 19:56, 4 feb 2017

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 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( ).

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