Share via


_setmode

définit le fichier à mode de traduction.

int _setmode (
   int fd,
   int mode 
);

Paramètres

  • fd
    descripteur de fichier.

  • mode
    nouvel à mode de traduction.

Valeur de retour

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

Si des paramètres incorrects sont passés à cette fonction, le gestionnaire de paramètre non valide est appelé, comme décrit dans Validation des paramètres.Si est autorisé à l'exécution de se poursuivre, le retour de cette fonction - 1 et définit errno à l'un ou l'autre EBADF, qui indique un descripteur de fichier valide, ou à EINVAL, qui indique un argument non valide d' mode .

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

Notes

La fonction d' _setmode définit à mode l'à mode de traduction du fichier indiqué par fd.Passer _O_TEXT comme mode de texte des jeux d' mode (autrement dit, traduit).Les combinaisons de retour-ligne de chariot (CR-LF) sont traduits en caractère unique de saut de ligne lors de l'entrée.Les caractères de saut de ligne sont traduits en combinaisons de CR-LF sur la sortie.Passant le mode (non traduit) binaire des jeux d' _O_BINARY , dans lequel ces traductions sont supprimées.

Vous pouvez également passer _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 la valeur par défaut à mode de traduction d' stdin et d' stdout, mais vous pouvez l'utiliser sur un fichier.Si vous appliquez _setmode au descripteur de fichier pour un flux, appelez _setmode avant d'exécuter toutes les opérations d'entrée ou de sortie sur le flux de données.

Mise en gardeAttention

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

Configuration requise

routine

en-tête requis

en-têtes facultatifs

_setmode

<io.h>

<fcntl.h>

Pour plus d'informations de compatibilité, consultez compatibilité.

Exemple

// 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" );
}
  
// 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;

} équivalent du .NET Framework

Voir aussi

Référence

Gestion de fichiers

_create, _wcreat

le fopen, _wfopen

_open, _wopen

_set_fmode