_fgetc_nolock
, _fgetwc_nolock
Legge un carattere da un flusso senza bloccare.
Sintassi
int _fgetc_nolock(
FILE *stream
);
wint_t _fgetwc_nolock(
FILE *stream
);
Parametri
stream
Puntatore alla struttura FILE
.
Valore restituito
Vederefgetc
. fgetwc
Osservazioni:
_fgetc_nolock
e _fgetwc_nolock
sono rispettivamente identici a fgetc
e fgetwc
, ad eccezione del fatto che non sono protetti da interferenze da altri thread. Potrebbero essere più veloci perché non comportano il sovraccarico di blocco di altri thread. Utilizzare queste funzioni solo in contesti thread-safe come applicazioni a thread singolo o dove l'ambito chiamante già gestisce l'isolamento del thread.
Per impostazione predefinita, lo stato globale di questa funzione è limitato all'applicazione. Per modificare questo comportamento, vedere Stato globale in CRT.
Mapping di routine di testo generico
Routine Tchar.h | _UNICODE e _MBCS non definito |
_MBCS definito |
_UNICODE definito |
---|---|---|---|
_fgettc_nolock |
_fgetc_nolock |
_fgetc_nolock |
_fgetwc_nolock |
Requisiti
Funzione | Intestazione obbligatoria |
---|---|
_fgetc_nolock |
<stdio.h> |
_fgetwc_nolock |
<stdio.h> o <wchar.h> |
Per altre informazioni sulla compatibilità, vedere Compatibility (Compatibilità).
Esempio
// crt_fgetc_nolock.c
// This program uses getc to read the first
// 80 input characters (or until the end of input)
// and place them into a string named buffer.
#include <stdio.h>
#include <stdlib.h>
int main( void )
{
FILE *stream;
char buffer[81];
int i, ch;
// Open file to read line from:
if( fopen_s( &stream, "crt_fgetc_nolock.txt", "r" ) != 0 )
exit( 0 );
// Read in first 80 characters and place them in "buffer":
ch = fgetc( stream );
for( i=0; (i < 80 ) && ( feof( stream ) == 0 ); i++ )
{
buffer[i] = (char)ch;
ch = _fgetc_nolock( stream );
}
// Add null to end string
buffer[i] = '\0';
printf( "%s\n", buffer );
fclose( stream );
}
Input: crt_fgetc_nolock.txt
Line one.
Line two.
Output
Line one.
Line two.