_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). Стандартные дескрипторы потока, связанные с консолью, stdin
stdout
и 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