Anmerkung
Der Zugriff auf diese Seite erfordert eine Genehmigung. Du kannst versuchen, dich anzumelden oder die Verzeichnisse zu wechseln.
Der Zugriff auf diese Seite erfordert eine Genehmigung. Du kannst versuchen , die Verzeichnisse zu wechseln.
Legt den Standarddateiübersetzungsmodus für Datei E/A-Vorgänge fest.
Syntax
errno_t _set_fmode(
int mode
);
Parameter
mode
Der gewünschte Dateiübersetzungsmodus: _O_TEXT oder _O_BINARY.
Rückgabewert
Gibt bei Erfolg 0 bzw. im Fehlerfall einen Fehlercode zurück. Wenn mode der Parameterhandler nicht _O_TEXT oder _O_BINARY _O_WTEXToder , wird der ungültige Parameterhandler aufgerufen, wie in der Parameterüberprüfung beschrieben. Wenn die weitere Ausführung zugelassen wird, legt diese Funktion errno auf EINVAL fest und gibt EINVAL zurück.
Hinweise
Die Funktion legt die _fmode globale Variable fest. Diese Variable gibt den Standard-Dateiübersetzungsmodus für die Datei-E/A-Vorgänge _open und _pipe an.
_O_TEXT und _O_BINARY werden in Fcntl.h definiert. EINVAL wird in Errno.h. definiert.
Standardmäßig gilt der globale Zustand dieser Funktion für die Anwendung. Wie Sie dieses Verhalten ändern, erfahren Sie unter Globaler Status in der CRT.
Anforderungen
| Routine | Erforderlicher Header | Optionaler Header |
|---|---|---|
_set_fmode |
<stdlib.h> | <fcntl.h>, <errno.h> |
Weitere Informationen zur Kompatibilität finden Sie unter Kompatibilität.
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");
}
Default Mode is binary
A B C D E F G H I J K L