_fputc_nolock
, _fputwc_nolock
Записывает символ в поток без блокировки.
Синтаксис
int _fputc_nolock(
int c,
FILE *stream
);
wint_t _fputwc_nolock(
wchar_t c,
FILE *stream
);
Параметры
c
Символ, который требуется записать.
stream
Указатель на структуру FILE
.
Возвращаемое значение
Каждая из этих функций возвращает записанный символ. Сведения об ошибке см. в разделе fputc
. fputwc
Замечания
_fputc_nolock
и _fputwc_nolock
идентичны fputc
fputwc
и соответственно, за исключением того, что они не защищены от вмешательства другими потоками. Они могут быть быстрее, так как они не влечет за собой затраты на блокировку других потоков. Используйте эти функции только в потокобезопасных контекстах, например в однопоточных приложениях или если вызываемая область уже обрабатывает изоляцию потоков.
Эти две функции ведут себя одинаково, если поток открыт в режиме ANSI. Функция _fputc_nolock
на данный момент не поддерживает вывод данных в поток в кодировке Юникод.
По умолчанию глобальное состояние этой функции ограничивается приложением. Чтобы изменить это поведение, см . статью "Глобальное состояние" в CRT.
Сопоставления подпрограмм универсального текста
Подпрограмма Tchar.h | _UNICODE и _MBCS не определен |
_MBCS Определенные |
_UNICODE Определенные |
---|---|---|---|
_fputtc_nolock |
_fputc_nolock |
_fputc_nolock |
_fputwc_nolock |
Требования
Function | Обязательный заголовок |
---|---|
_fputc_nolock |
<stdio.h> |
_fputwc_nolock |
<stdio.h> или <wchar.h> |
Консоль не поддерживается в приложениях универсальная платформа Windows (UWP). Стандартные дескрипторы потока, связанные с консолью,stdin
stdout
и stderr
должны быть перенаправлены, прежде чем функции времени выполнения C могут использовать их в приложениях UWP. Дополнительные сведения о совместимости см. в разделе Совместимость.
Пример
// crt_fputc_nolock.c
// This program uses _fputc_nolock
// to send a character array to stdout.
#include <stdio.h>
int main( void )
{
char strptr1[] = "This is a test of _fputc_nolock!!\n";
char *p;
// Print line to stream using fputc.
p = strptr1;
while( (*p != '\0') && _fputc_nolock( *(p++), stdout ) != EOF ) ;
}
This is a test of _fputc_nolock!!