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


_fgetc_nolock, _fgetwc_nolock

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

Синтаксис

int _fgetc_nolock(
   FILE *stream
);
wint_t _fgetwc_nolock(
   FILE *stream
);

Параметры

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

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

fgetwcСмfgetc.

Замечания

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

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

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

Подпрограмма Tchar.h _UNICODE и _MBCS не определен _MBCS Определенные _UNICODE Определенные
_fgettc_nolock _fgetc_nolock _fgetc_nolock _fgetwc_nolock

Требования

Function Обязательный заголовок
_fgetc_nolock <stdio.h>
_fgetwc_nolock <stdio.h> или <wchar.h>

Дополнительные сведения о совместимости см. в разделе Совместимость.

Пример

// crt_fgetc_nolock.c
// This program uses getc to read the first
// 80 input characters (or until the end of input)
// and place them into a string named buffer.

#include <stdio.h>
#include <stdlib.h>

int main( void )
{
   FILE *stream;
   char buffer[81];
   int  i, ch;

   // Open file to read line from:
   if( fopen_s( &stream, "crt_fgetc_nolock.txt", "r" ) != 0 )
      exit( 0 );

   // Read in first 80 characters and place them in "buffer":
   ch = fgetc( stream );
   for( i=0; (i < 80 ) && ( feof( stream ) == 0 ); i++ )
   {
      buffer[i] = (char)ch;
      ch = _fgetc_nolock( stream );
   }

   // Add null to end string
   buffer[i] = '\0';
   printf( "%s\n", buffer );
   fclose( stream );
}

Входные данные: crt_fgetc_nolock.txt

Line one.
Line two.

Выходные данные

Line one.
Line two.

См. также

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