_putc_nolock, _putwc_nolock

 

Самая актуальная документация по Visual Studio 2017: Документация по Visual Studio 2017.

Записывает символ в поток без блокирования потока.

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

Параметры

c
Символ, который требуется записать.

stream
Указатель на ФАЙЛ структуры.

В разделе putc putwc.

_putc_nolockи _putwc_nolock идентичны версиям без _nolock суффикса, за исключением того, что они не защищены от помех со стороны других потоков. Они могут выполняться быстрее, поскольку не создают дополнительную нагрузку, связанную с блокировкой работы других потоков. Используйте эти функции только в потокобезопасных контекстах, например в однопоточных приложениях или если вызываемая область уже обрабатывает изоляцию потоков.

_putwc_nolockпредставляет версию расширенных символов _putc_nolock; две функции ведут себя одинаково при открытии потока в режиме ANSI. _putc_nolockне поддерживает выходные данные в поток в кодировке Юникод.

Универсальное текстовое сопоставление функций

Подпрограмма Tchar.h_UNICODE и _MBCS не определены_MBCS определено_UNICODE определено
_puttc_nolock_putc_nolock_putc_nolock_putwc_nolock
ПодпрограммаОбязательный заголовок
_putc_nolock<stdio.h>
_putwc_nolock<stdio.h> или <wchar.h>

Консоль не поддерживается в приложениях Магазин Windows 8.x. Стандартные дескрипторы потока, связанные с консолью, stdin, stdout и stderr, необходимо перенаправить, чтобы функции C времени выполнения могли использовать их в приложениях Магазин Windows 8.x. Дополнительные сведения о совместимости см. в разделе Compatibility.

Все версии библиотек времени выполнения языка C.

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

This is the line of output  

Поток ввода-вывода
fputc fputwc
getc getwc

Показ: