Udostępnij za pośrednictwem


_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_nolocki 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ą —stdinstdout 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!!

Zobacz też

We/Wy strumienia
fgetc, fgetwc
putc, putwc