Exporter (0) Imprimer
Développer tout
and
div
eof
not
or
xor
Développer Réduire
Cet article a fait l'objet d'une traduction automatique. Déplacez votre pointeur sur les phrases de l'article pour voir la version originale de ce texte. Informations supplémentaires.
Traduction
Source

_setmode

Définit le mode traduction de fichiers.

int _setmode (
   int fd,
   int mode 
);

fd

Descripteur du fichier

mode

Nouveau mode de traduction.

En cas de réussite, retourne le mode de traduction précédent.

Si des paramètres non valides sont transmis à cette fonction, le gestionnaire de paramètre non valide est appelé, comme décrit dans Validation de paramètre. Si l'exécution est autorisée à continuer, cette fonction retourne – 1 et affecte errno à soit EBADF, ce qui indique un descripteur de fichier non valide, soit EINVAL, ce qui indique un argument non valide de mode.

Pour plus d'informations sur ces codes de retour et autres, consultez _doserrno, errno, _sys_errlist et _sys_nerr.

La fonction _setmode définit à mode le mode de conversion du fichier fourni par fd. Passer _O_TEXT comme mode définit le mode de texte (autrement dit, traduit). Les combinaisons sauts de ligne-retour de chariot (CR-LF) sont traduites en un unique caractère de saut de ligne en entrée. Les caractères de saut de ligne sont convertis en combinaisons CR-LF en sortie. Passer _O_BINARY définit le mode non traduit (binaire), dans lequel ces traductions sont supprimées.

Vous pouvez également mentionner _O_U16TEXT, _O_U8TEXT, ou _O_WTEXT pour activer le mode Unicode, comme indiqué dans le deuxième exemple plus loin dans ce document. _setmode est généralement utilisé pour modifier le mode de traduction par défaut de stdin et de stdout, mais vous pouvez l'utiliser sur n'importe quel fichier. Si vous appliquez _setmode au descripteur de fichier pour un flux de données, appelez _setmode avant d'exécuter toutes les opérations d'entrée ou de sortie sur le flux de données.

Mise en garde Attention

Si vous entrez des données à un flux de fichier, videz explicitement le code à l'aide de fflush avant d'utiliser _setmode pour modifier le mode. Si vous ne videz pas le code, vous pouvez obtenir un comportement inattendu. Si vous n'avez pas écrit les données dans le flux de données, vous ne devez pas vider le code.

Routine

En-tête requis

En-têtes facultatives

_setmode

<io.h,>

<fcntl.h>

Pour plus d'informations sur la compatibilité, consultez Compatibilité.

// crt_setmode.c
// This program uses _setmode to change
// stdin from text mode to binary mode.


#include <stdio.h>
#include <fcntl.h>
#include <io.h>

int main( void )
{
   int result;

   // Set "stdin" to have binary mode:
   result = _setmode( _fileno( stdin ), _O_BINARY );
   if( result == -1 )
      perror( "Cannot set mode" );
   else
      printf( "'stdin' successfully changed to binary mode\n" );
}
« stdin » a été changé avec succès en mode binaire
// crt_setmodeunicode.c
// This program uses _setmode to change
// stdout to Unicode. Cyrillic and Ideographic
// characters will appear on the console (if
// your console font supports those character sets).

#include <fcntl.h>
#include <io.h>
#include <stdio.h>

int main(void) {
    _setmode(_fileno(stdout), _O_U16TEXT);
    wprintf(L"\x043a\x043e\x0448\x043a\x0430 \x65e5\x672c\x56fd\n");
    return 0;

Ajouts de la communauté

AJOUTER
Afficher:
© 2014 Microsoft