Compartilhar via


_putc_nolock, _putwc_nolock

Grava um caractere em um fluxo sem bloquear.

Sintaxe

int _putc_nolock(
   int c,
   FILE *stream
);
wint_t _putwc_nolock(
   wchar_t c,
   FILE *stream
);

Parâmetros

c
O caractere a ser gravado.

stream
Ponteiro para a estrutura FILE.

Valor retornado

Consulte putc, putwc.

Comentários

_putc_nolock e _putwc_nolock são idênticas às versões sem o sufixo _nolock, exceto pelo fato de não serem protegidas contra interferência de outros threads. Elas podem ser mais rápidas 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.

_putwc_nolock é a versão de caractere largo de _putc_nolock; as duas funções se comportam de forma idêntica quando o fluxo é aberto no modo ANSI. Atualmente, _putc_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
_puttc_nolock _putc_nolock _putc_nolock _putwc_nolock

Requisitos

Rotina Cabeçalho necessário
_putc_nolock <stdio.h>
_putwc_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.

Bibliotecas

Todas as versões das bibliotecas em tempo de execução C.

Exemplo

// crt_putc_nolock.c
/* This program uses putc to write buffer
* to a stream. If an error occurs, the program
* stops before writing the entire buffer.
*/

#include <stdio.h>

int main( void )
{
   FILE *stream;
   char *p, buffer[] = "This is the line of output\n";
   int  ch;

   ch = 0;
   /* Make standard out the stream and write to it. */
   stream = stdout;
   for( p = buffer; (ch != EOF) && (*p != '\0'); p++ )
      ch = _putc_nolock( *p, stream );
}

Saída

This is the line of output

Confira também

E/S de fluxo
fputc, fputwc
getc, getwc