Nota
O acesso a esta página requer autorização. Podes tentar iniciar sessão ou mudar de diretório.
O acesso a esta página requer autorização. Podes tentar mudar de diretório.
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