_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.
Attention |
---|
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;