Partilhar via


_fputc_nolock, _fputwc_nolock

Grava um caractere em um fluxo sem bloqueio.

Sintaxe

int _fputc_nolock(
   int c,
   FILE *stream
);
wint_t _fputwc_nolock(
   wchar_t c,
   FILE *stream
);

Parâmetros

c
O caractere a ser gravado.

stream
Ponteiro para a estrutura FILE.

Valor retornado

Cada uma dessas funções retorna o caractere gravado. Para obter informações de erro, consulte fputc, fputwc.

Comentários

_fputc_nolock e _fputwc_nolock são idênticos a fputc e fputwc, 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.

As duas funções terão comportamento idêntico se o fluxo for aberto no modo ANSI. Atualmente, _fputc_nolock não dá suporte para a saída em um fluxo UNICODE.

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
_fputtc_nolock _fputc_nolock _fputc_nolock _fputwc_nolock

Requisitos

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

Não há suporte para o console em aplicativos UWP (Plataforma Universal do Windows). Os identificadores de fluxo padrão associados ao console, stdin, stdout e stderr, devem ser redirecionados antes que as funções em tempo de execução C possam usá-los em aplicativos UWP. Para obter informações sobre compatibilidade, consulte Compatibilidade.

Exemplo

// crt_fputc_nolock.c
// This program uses _fputc_nolock
// to send a character array to stdout.

#include <stdio.h>

int main( void )
{
   char strptr1[] = "This is a test of _fputc_nolock!!\n";
   char *p;

   // Print line to stream using fputc.
   p = strptr1;
   while( (*p != '\0') && _fputc_nolock( *(p++), stdout ) != EOF ) ;

}
This is a test of _fputc_nolock!!

Confira também

E/S de fluxo
fgetc, fgetwc
putc, putwc