Fputc ()

Da Gambas-it.org - Wikipedia.
Versione del 14 giu 2024 alle 15:19 di Vuott (Discussione | contributi)

(diff) ← Versione meno recente | Versione attuale (diff) | Versione più recente → (diff)

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