_setmode
Legt den Modus für übersetzungs Datei fest.
int _setmode (
int fd,
int mode
);
Parameter
fd
Dateideskriptor.mode
Neuer Übersetzungs Modus.
Rückgabewert
Bei Erfolg gibt den vorherigen Übersetzungs Modus zurück.
Wenn ungültige Parameter an diese Funktion übergeben werden, wird der PARAMETER-Handler Ungültig aufgerufen, wie in Parametervalidierungbeschrieben.Wenn die Ausführung zulässig ist, um fortzufahren, kehrt diese Funktion 1 zurück und legt errno zu jedem EBADF, das einen ungültigen Dateideskriptor angibt, oder EINVALfest, das mode ein ungültiges Argument angegeben wird.
Weitere Informationen über diese und andere Rückgabecodes finden Sie unter _doserrno, errno, _sys_errlist und _sys_nerr.
Hinweise
Die _setmode-Funktion legt Übersetzungs zu mode den Modus der Datei fest, die von fdangegeben ist._O_TEXT als Modus des mode Satz Linktext übergeben (Verschiebung).Kombinationen von Wagenrücklauf-Zeilenvorschubs (CR-LF) werden in ein Zeilenvorschubzeichen der einzelnen Zeile bei der Eingabe übersetzt.Zeilenvorschubzeichen werden in CR-LF Kombinationen auf Ausgabe übersetzt.Übergeben von binären Modus _O_BINARY legt sie fest (unübersetzten), in dem diese Übersetzungen unterdrückt werden.
Sie können _O_U16TEXT, _O_U8TEXToder _O_WTEXT ebenfalls übergeben, um Unicode-Modus zu aktivieren, wie weiter unten in diesem Dokument wird im zweiten Beispiel._setmode wird normalerweise verwendet, um den standardmäßigen Modus von stdin und Übersetzungs stdoutzu ändern, jedoch können Sie ihn in jeder Datei verwenden.Wenn Sie _setmode zum Dateideskriptor einen Stream, rufen Sie _setmode anwenden, bevor Sie alle Eingabe- oder Ausgabe im Stream Vorgänge ausführen.
Vorsicht |
---|
Wenn Sie den Stream schreiben die Daten in eine Datei mit leeren explizit den Code, indem sie fflush verwenden, bevor Sie _setmode verwenden, um den Modus zu wechseln.Wenn Sie nicht den Code leeren, könnten Sie unerwartetes Verhalten ab.Wenn Sie Daten nicht in den Stream geschrieben haben, müssen Sie den Code nicht leer sein. |
Anforderungen
Routine |
Erforderlicher Header |
Optionale Header |
---|---|---|
_setmode |
<io.h> |
<fcntl.h> |
Weitere Informationen finden Sie unter KompatibilitätKompatibilität.
Beispiel
// 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;