Chiude lo stream \param{stream}.
\bodydesc{Restituisce 0 in caso di successo e \val{EOF} in caso di errore,
- nel qual caso imposta \var{errno} a \const{EBADF} se il file descriptor
+ nel qual caso imposta \var{errno} a \errval{EBADF} se il file descriptor
indicato da \param{stream} non è valido, o uno dei valori specificati
dalla sottostante funzione che è fallita (\func{close}, \func{write} o
\func{fflush}).}
Linux supporta anche una altra funzione, \func{fcloseall}, come estensione GNU
implementata dalle \acr{glibc}, accessibile avendo definito
-\const{\_GNU\_SOURCE}, il suo prototipo è:
+\macro{\_GNU\_SOURCE}, il suo prototipo è:
\begin{prototype}{stdio.h}{int fcloseall(void)}
Chiude tutti gli stream.
Per questo motivo le \acr{glibc} prevedono, come estensione GNU, due
nuove funzioni per la gestione dell'input/output di linea, il cui uso
permette di risolvere questi problemi. L'uso di queste funzioni deve
-essere attivato definendo la macro \const{\_GNU\_SOURCE} prima di
+essere attivato definendo la macro \macro{\_GNU\_SOURCE} prima di
includere \file{stdio.h}. La prima delle due, \func{getline}, serve per
leggere una linea terminata da un newline esattamente allo stesso modo
di \func{fgets}, il suo prototipo è:
Per eliminare alla radice questi problemi, le \acr{glibc} supportano una
specifica estensione GNU che alloca dinamicamente tutto lo spazio necessario;
-l'estensione si attiva al solito definendo \const{\_GNU\_SOURCE}, le due
+l'estensione si attiva al solito definendo \macro{\_GNU\_SOURCE}, le due
funzioni sono:
\begin{functions}
\headdecl{stdio.h}
\bodydesc{Restituisce il numero del file descriptor in caso di successo, e
-1 qualora \param{stream} non sia valido, nel qual caso imposta
- \var{errno} a \const{EBADF}.}
+ \var{errno} a \errval{EBADF}.}
\end{prototype}
\noindent ed in questo modo diventa possibile usare direttamente \func{fcntl}.
Forza la scrittura di tutti i dati bufferizzati dello stream \param{stream}.
\bodydesc{Restituisce zero in caso di successo, ed \val{EOF} in caso di
- errore, impostando \var{errno} a \const{EBADF} se \param{stream} non è
+ errore, impostando \var{errno} a \errval{EBADF} se \param{stream} non è
aperto o non è aperto in scrittura, o ad uno degli errori di
\func{write}.}
\end{prototype}
\noindent anche di questa funzione esiste una analoga
-\func{fflush\_unlocked}\footnote{accessibile definendo \const{\_BSD\_SOURCE} o
- \const{\_SVID\_SOURCE} o \const{\_GNU\_SOURCE}.} che non effettua il blocco
+\func{fflush\_unlocked}\footnote{accessibile definendo \macro{\_BSD\_SOURCE} o
+ \macro{\_SVID\_SOURCE} o \macro{\_GNU\_SOURCE}.} che non effettua il blocco
dello stream.
Se \param{stream} è \val{NULL} lo scarico dei dati è forzato per tutti gli
necessita di compiere più di una operazione sullo stream atomicamente, per
questo motivo le librerie provvedono anche delle funzioni che permettono la
gestione esplicita dei blocchi sugli stream; queste funzioni sono disponibili
-definendo \const{\_POSIX\_THREAD\_SAFE\_FUNCTIONS} ed i loro prototipi sono:
+definendo \macro{\_POSIX\_THREAD\_SAFE\_FUNCTIONS} ed i loro prototipi sono:
\begin{functions}
\headdecl{stdio.h}