Поделиться через


_putc_nolock, _putwc_nolock

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

Синтаксис

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

Параметры

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

stream
Указатель на структуру FILE.

Возвращаемое значение

См. putc, putwc.

Замечания

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

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

По умолчанию глобальное состояние этой функции ограничивается приложением. Чтобы изменить это поведение, см . статью "Глобальное состояние" в CRT.

Сопоставления подпрограмм универсального текста

Подпрограмма 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 (UWP). Стандартные дескрипторы потока, связанные с консолью, stdinstdoutи stderr, должны быть перенаправлены перед тем, как функции времени выполнения C могут использовать их в приложениях UWP. Дополнительные сведения о совместимости см. в разделе Совместимость.

Библиотеки

Все версии библиотек времени выполнения языка 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