_fputc_nolock
, _fputwc_nolock
Escribe un carácter en una secuencia sin bloqueo.
Sintaxis
int _fputc_nolock(
int c,
FILE *stream
);
wint_t _fputwc_nolock(
wchar_t c,
FILE *stream
);
Parámetros
c
Carácter que se va a escribir.
stream
Puntero a la estructura de FILE
.
Valor devuelto
Cada una de estas funciones devuelve el carácter escrito. Para obtener información sobre errores, vea fputc
, fputwc
.
Comentarios
_fputc_nolock
y _fputwc_nolock
son exactamente iguales que fputc
y fputwc
, respectivamente, salvo que no están protegidas contra interferencias de otros subprocesos. Pueden ser más rápidos porque no incurren en la sobrecarga de bloquear otros subprocesos. Use estas funciones solo en contextos seguros para subprocesos como aplicaciones de un único subproceso o donde el ámbito de llamada ya controle el aislamiento de subprocesos.
Las dos funciones se comportan igual si el flujo se abre en modo ANSI. _fputc_nolock
no admite actualmente la salida en un flujo UNICODE.
De manera predeterminada, el estado global de esta función está limitado a la aplicación. Para cambiar este comportamiento, consulte Estado global en CRT.
Asignaciones de rutinas de texto genérico
Rutina Tchar.h | _UNICODE y _MBCS no definidos |
_MBCS definido |
_UNICODE definido |
---|---|---|---|
_fputtc_nolock |
_fputc_nolock |
_fputc_nolock |
_fputwc_nolock |
Requisitos
Función | Encabezado necesario |
---|---|
_fputc_nolock |
<stdio.h> |
_fputwc_nolock |
<stdio.h> o <wchar.h> |
La consola no se admite en las aplicaciones de la Plataforma universal de Windows (UWP). Los identificadores de flujo estándar asociados a la consola, stdin
, stdout
y stderr
, se deben redirigir antes de que las funciones en tiempo de ejecución de C puedan usarlos en aplicaciones para UWP. Para obtener más información sobre compatibilidad, consulte Compatibilidad.
Ejemplo
// 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!!