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


_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 идентичны fputcfputwcи соответственно, за исключением того, что они не защищены от вмешательства другими потоками. Они могут быть быстрее, так как они не влечет за собой затраты на блокировку других потоков. Используйте эти функции только в потокобезопасных контекстах, например в однопоточных приложениях или если вызываемая область уже обрабатывает изоляцию потоков.

Эти две функции ведут себя одинаково, если поток открыт в режиме 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). Стандартные дескрипторы потока, связанные с консолью,stdinstdout и 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!!

См. также

Потоковый ввод-вывод
fgetc, fgetwc
putc, putwc