Freigeben über


_fgetc_nolock, _fgetwc_nolock

Liest ein Zeichen in einem Datenstrom ohne zu sperren.

Syntax

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

Parameter

stream
Zeiger auf die FILE-Struktur.

Rückgabewert

Siehe fgetc, fgetwc.

Hinweise

_fgetc_nolock und _fgetwc_nolock sind mit fgetc bzw. fgetwc nahezu identisch, allerdings sind sie nicht vor Störungen durch andere Threads geschützt. Sie sind möglicherweise schneller, da kein Mehraufwand zur Sperrung anderer Threads erforderlich ist. Verwenden Sie diese Funktionen nur in threadsichere Kontexten wie z. B. in Singlethreadanwendungen oder in Fällen, in denen der aufrufende Bereich die Threadisolation bereits handhabt.

Standardmäßig gilt der globale Zustand dieser Funktion für die Anwendung. Wie Sie dieses Verhalten ändern, erfahren Sie unter Globaler Status in der CRT.

Mapping generischer Textroutinen

Tchar.h-Routine _UNICODE und _MBCS nicht definiert _MBCS definiert _UNICODE definiert
_fgettc_nolock _fgetc_nolock _fgetc_nolock _fgetwc_nolock

Anforderungen

Funktion Erforderlicher Header
_fgetc_nolock <stdio.h>
_fgetwc_nolock <stdio.h> oder <wchar.h>

Weitere Informationen zur Kompatibilität finden Sie unter Kompatibilität.

Beispiel

// 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 );
}

Eingabe: crt_fgetc_nolock.txt

Line one.
Line two.

Output

Line one.
Line two.

Weitere Informationen

Stream-E/A
fputc, fputwc
getc, getwc