Partilhar via


_fgetc_nolock, _fgetwc_nolock

Lê um caractere de um fluxo sem bloqueio.

Sintaxe

int _fgetc_nolock(
   FILE *stream
);
wint_t _fgetwc_nolock(
   FILE *stream
);

Parâmetros

stream
Ponteiro para a estrutura FILE.

Valor retornado

Consulte fgetc, fgetwc.

Comentários

_fgetc_nolock e _fgetwc_nolock são idênticos a fgetc e fgetwc, respectivamente, exceto pelo fato de não serem protegidos contra interferência de outros threads. Eles podem ser mais rápidos porque não incorrem na sobrecarga de bloquear outros threads. Use estas funções apenas em contextos thread-safe, como aplicativos de thread único ou em que o escopo de chamada já trata do isolamento de threads.

Por padrão, o estado global dessa função tem como escopo o aplicativo. Para alterar esse comportamento, confira Estado global no CRT.

Mapeamentos de rotina de texto genérico

Rotina Tchar.h _UNICODE e _MBCS não definidos _MBCS definido _UNICODE definido
_fgettc_nolock _fgetc_nolock _fgetc_nolock _fgetwc_nolock

Requisitos

Função Cabeçalho necessário
_fgetc_nolock <stdio.h>
_fgetwc_nolock <stdio.h> ou <wchar.h>

Para obter informações sobre compatibilidade, consulte Compatibilidade.

Exemplo

// 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 );
}

Entrada: crt_fgetc_nolock.txt

Line one.
Line two.

Saída

Line one.
Line two.

Confira também

E/S de fluxo
fputc, fputwc
getc, getwc