_set_fmode
Legt den Standarddateiübersetzungsmodus für Datei-E/A-Vorgänge fest.
errno_t _set_fmode(
int mode
);
Parameter
- [in] mode
Der Dateiübersetzungsmodus erforderlich: _O_TEXT oder _O_BINARY.
Rückgabewert
Gibt null zurück, wenn der Vorgang erfolgreich, ein Fehlercode auf Fehler. Wenn mode nicht _O_TEXT oder _O_BINARY oder _O_WTEXT ist, wird der ungültige Parameterhandler aufgerufen, wie in Parametervalidierung beschrieben. Wenn die weitere Ausführung zugelassen wird, legt diese Funktion errno auf EINVAL fest und gibt EINVAL zurück.
Hinweise
Die Funktion wird die globale Variable _fmode fest. Diese Variable gibt den Standarddateiübersetzungsmodus für Datei-E/A-Vorgänge die _open und _pipe an.
_O_TEXT und _O_BINARY werden in Fcntl.h definiert. EINVAL wird in Errno.h definiert.
Anforderungen
Routine |
Erforderlicher Header |
Optionaler Header |
---|---|---|
_set_fmode |
<stdlib.h> |
<fcntl.h, errno.h><> |
Weitere Informationen zur Kompatibilität finden Sie unter Kompatibilität in der Einführung.
Beispiel
// 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");
}