_getc_nolock
, _getwc_nolock
Liest ein Zeichen in einem Datenstrom ohne zu sperren.
Syntax
int _getc_nolock(
FILE *stream
);
wint_t _getwc_nolock(
FILE *stream
);
Parameter
stream
Eingabestream
Rückgabewert
Siehe getc
, getwc
.
Hinweise
Diese Funktionen sind mit getc
und getwc
nahezu identisch, allerdings sperren sie nicht den aufrufenden Thread. 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 |
---|---|---|---|
_gettc_nolock |
getc_nolock |
getc_nolock |
getwc_nolock |
Anforderungen
Routine | Erforderlicher Header |
---|---|
getc_nolock |
<stdio.h> |
getwc_nolock |
<stdio.h> oder <wchar.h> |
Weitere Informationen zur Kompatibilität finden Sie unter Kompatibilität.
Beispiel
// crt_getc_nolock.c
// Use getc to read a line from a file.
#include <stdio.h>
int main()
{
char buffer[81];
int i, ch;
FILE* fp;
// Read a single line from the file "crt_getc_nolock.txt".
fopen_s(&fp, "crt_getc_nolock.txt", "r");
if (!fp)
{
printf("Failed to open file crt_getc_nolock.txt.\n");
exit(1);
}
for (i = 0; (i < 80) && ((ch = getc(fp)) != EOF)
&& (ch != '\n'); i++)
{
buffer[i] = (char) ch;
}
// Terminate string with a null character
buffer[i] = '\0';
printf( "Input was: %s\n", buffer);
fclose(fp);
}
Eingabe: crt_getc_nolock.txt
Line the first.
Line the second.
Output
Input was: Line the first.
Weitere Informationen
Stream-E/A
fgetc
, fgetwc
_getch
, _getwch
putc
, putwc
ungetc
, ungetwc