_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!!