_set_fmode
Définit le mode de traduction de fichier par défaut pour les opérations d’E/S de fichier.
Syntaxe
errno_t _set_fmode(
int mode
);
Paramètres
mode
Mode de traduction de fichier souhaité : _O_TEXT
ou _O_BINARY
.
Valeur retournée
Retourne zéro si l’opération a réussi et un code d’erreur en cas d’échec. Si mode
ce n’est pas _O_TEXT
le cas ou _O_BINARY
_O_WTEXT
, le gestionnaire de paramètres non valide est appelé, comme décrit dans la validation des paramètres. Si l'exécution est autorisée à se poursuivre, cette fonction affecte la valeur errno
à EINVAL
et retourne EINVAL
.
Notes
La fonction définit la _fmode
variable globale. Cette variable spécifie le mode de traduction de fichier par défaut pour les opérations d’E/S de fichier _open
et _pipe
.
_O_TEXT
et _O_BINARY
sont définis dans Fcntl.h. EINVAL
est défini dans Errno.h.
Par défaut, l’état global de cette fonction est limité à l’application. Pour modifier ce comportement, consultez État global dans le CRT.
Spécifications
Routine | En-tête requis | En-tête facultatif |
---|---|---|
_set_fmode |
<stdlib.h> | <fcntl.h>, <errno.h> |
Pour plus d’informations sur la compatibilité, consultez Compatibility.
Exemple
// crt_set_fmode.c
#include <stdlib.h>
#include <stdio.h>
#include <fcntl.h> /* for _O_TEXT and _O_BINARY */
#include <errno.h> /* for EINVAL */
#include <sys\stat.h> /* for _S_IWRITE */
#include <share.h> /* for _SH_DENYNO */
int main()
{
int mode, fd, ret;
errno_t err;
int buf[12] = { 65, 66, 67, 68, 69, 70, 71, 72, 73, 74,
75, 76 };
char * filename = "fmode.out";
err = _get_fmode(&mode);
if (err == EINVAL)
{
printf( "Invalid parameter: mode\n");
return 1;
}
else
printf( "Default Mode is %s\n", mode == _O_TEXT ? "text" :
"binary");
err = _set_fmode(_O_BINARY);
if (err == EINVAL)
{
printf( "Invalid mode.\n");
return 1;
}
if ( _sopen_s(&fd, filename, _O_RDWR | _O_CREAT, _SH_DENYNO, _S_IWRITE | _S_IREAD) != 0 )
{
printf( "Error opening the file %s\n", filename);
return 1;
}
if (ret = _write(fd, buf, 12*sizeof(int)) < 12*sizeof(int))
{
printf( "Problem writing to the file %s.\n", filename);
printf( "Number of bytes written: %d\n", ret);
}
if (_close(fd) != 0)
{
printf("Error closing the file %s. Error code %d.\n",
filename, errno);
}
system("type fmode.out");
}
Default Mode is binary
A B C D E F G H I J K L
Voir aussi
Commentaires
https://aka.ms/ContentUserFeedback.
Bientôt disponible : Tout au long de 2024, nous allons supprimer progressivement GitHub Issues comme mécanisme de commentaires pour le contenu et le remplacer par un nouveau système de commentaires. Pour plus d’informations, consultezEnvoyer et afficher des commentaires pour