Sous-routine putwc, putwchar ou fputwc

Objectif

Ecrit un caractère ou un mot dans un flux.

Bibliothèque

Bibliothèque d'E-S standard (libc.a)

Syntaxe

#include <stdio.h>
wint_t putwc( CharacterStream)
wint_t Character;
FILE *Stream;
wint_t putwchar(Character)
wint_t Character;
wint_t fputwc(CharacterStream)
wint_t Character;
FILE Stream;

Descriptif

La sous-routine putwc écrit le caractère large spécifié par le paramètre Caractère dans le flux de sortie désigné par le paramètre Flux . Le caractère large est écrit sous la forme d'un caractère multioctet à l'indicateur de position de fichier associé pour le flux, s'il est défini. Le sous-programme fait alors avancer l'indicateur. Si le fichier ne prend pas en charge les demandes de positionnement ou si le flux a été ouvert en mode ajout, le caractère est ajouté au flux de sortie.

La sous-routine putwchar fonctionne comme la sous-routine putwc , sauf que putwchar écrit le caractère large spécifié dans la sortie standard.

La sous-routine fputwc fonctionne de la même manière que la sous-routine putwc .

Les flux de sortie, à l'exception de stderr, sont mis en mémoire tampon par défaut s'ils font référence à des fichiers, ou en mémoire tampon de ligne s'ils font référence à des terminaux. Le flux de sortie d'erreur standard, stderr, n'est pas mis en mémoire tampon par défaut, mais l'utilisation de la sous-routine freopen entraîne sa mise en mémoire tampon ou en mémoire tampon de ligne. Utilisez la sous-routine setbuf pour modifier la stratégie de mise en mémoire tampon du flux.

Après l'exécution réussie de la sous-routine fputwc, putwc, fputc. putc, fputs, putsou putw et avant la prochaine exécution réussie d'un appel à la sous-routine fflush ou fclose sur le même flux ou à la sous-routine exit ou abort , les zones st_ctime et st_mtime du fichier sont marquées pour mise à jour.

Paramètres

Tableau 1. Paramètres
Article Descriptif
CHARACTER Indique un caractère large de type wint_t.
Flux Indique un flux de données de sortie.

Valeurs renvoyées

Une fois l'opération terminée, les sous-routines putwc, putwcharet fputwc renvoient le caractère large qui est écrit. Sinon, WEOF est renvoyé. L'indicateur d'erreur du flux est défini et la variable globale errno est définie pour indiquer l'erreur.

Codes d'erreur

Si la sous-routine putwc, putwcharou fputwc échoue parce que le flux n'est pas mis en mémoire tampon ou que des données de la mémoire tampon doivent être écrites, elle renvoie un ou plusieurs des codes d'erreur suivants:

Tableau 2. Codes d'erreur
Article Descriptif
EAGAIN Indique que l'indicateur O_NONBLOCK est défini pour le descripteur de fichier sous-jacent au paramètre Flux , ce qui retarde le processus lors de l'opération d'écriture.
EBADF Indique que le descripteur de fichier sous-jacent au paramètre Flux n'est pas valide et ne peut pas être mis à jour lors de l'opération d'écriture.
EFBIG Indique que le processus a tenté d'écrire dans un fichier qui est déjà égal ou supérieur à la limite de taille de fichier pour le processus. Le fichier est un fichier standard et une tentative d'écriture a été effectuée au niveau ou au-delà du maximum de décalage associé au flux correspondant.
EILSEQ Indique que le code de caractère large ne correspond pas à un caractère valide.
EINTR Indique que le processus a reçu un signal qui met fin à l'opération de lecture.
EIO Indique que le processus se trouve dans un groupe de processus d'arrière-plan qui tente d'effectuer une opération d'écriture sur son terminal de contrôle. L'indicateur TOSTOP est défini. Le processus n'ignore pas ou ne bloque pas l'indicateur SIGTTOU et le groupe de processus du processus est orphelin.
ENOMEM L'espace de stockage disponible est insuffisant.
ENOSPC Indique qu'il ne reste plus d'espace disponible sur l'unité contenant le fichier.
ENXIO Indique qu'une demande a été effectuée sur une unité inexistante ou qu'elle était en dehors des capacités de l'unité.
EPIPE Indique que le processus a tenté d'écrire dans un canal de communication ou un premier entré, premier sorti (FIFO) qui n'est pas ouvert en lecture. Le processus reçoit également un signal SIGPIPE .