Freigeben über


_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