Fputc ()

Da Gambas-it.org - Wikipedia.

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