_fputc_nolock
, _fputwc_nolock
Zapisuje znak w strumieniu bez blokowania.
Składnia
int _fputc_nolock(
int c,
FILE *stream
);
wint_t _fputwc_nolock(
wchar_t c,
FILE *stream
);
Parametry
c
Znak do zapisania.
stream
Wskaźnik do FILE
struktury.
Wartość zwracana
Każda z tych funkcji zwraca zapisany znak. Aby uzyskać informacje o błędzie, zobacz fputc
, fputwc
.
Uwagi
_fputc_nolock
i są identyczne odpowiednio z fputc
elementami _fputwc_nolock
i fputwc
, z tą różnicą, że nie są one chronione przed ingerencją innych wątków. Mogą one być szybsze, ponieważ nie powodują obciążenia związanego z blokowaniem innych wątków. Używaj tych funkcji tylko w kontekstach bezpiecznych wątkowo, takich jak aplikacje jednowątkowe lub gdzie zakres wywołujący obsługuje już izolację wątków.
Obie funkcje zachowują się identycznie, jeśli strumień jest otwarty w trybie ANSI. _fputc_nolock
obecnie nie obsługuje danych wyjściowych do strumienia UNICODE.
Domyślnie stan globalny tej funkcji jest zakresem aplikacji. Aby zmienić to zachowanie, zobacz Stan globalny w CRT.
Mapowania procedur tekstu ogólnego
Procedura tchar.h | _UNICODE i _MBCS niezdefiniowane |
_MBCS zdefiniowany |
_UNICODE zdefiniowany |
---|---|---|---|
_fputtc_nolock |
_fputc_nolock |
_fputc_nolock |
_fputwc_nolock |
Wymagania
Function | Wymagany nagłówek |
---|---|
_fputc_nolock |
<stdio.h> |
_fputwc_nolock |
<stdio.h> lub <wchar.h> |
Konsola nie jest obsługiwana w aplikacjach platformy platforma uniwersalna systemu Windows (UWP). Standardowe dojścia strumienia skojarzone z konsolą —stdin
stdout
i stderr
— muszą zostać przekierowane, zanim funkcje czasu wykonywania języka C będą mogły ich używać w aplikacjach platformy UWP. Aby uzyskać więcej informacji o zgodności, zobacz Zgodność.
Przykład
// 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!!