setmode
Nach oben zu io.h - Index
Header-Datei
io.h
Kategorie
Eingabe-/Ausgaberoutinen
Prototyp
int setmode(int handle, int amode);
Beschreibung
Legt den Modus einer geöffneten Datei fest.
setmode stellt als Modus der geöffneten Datei, die mit handle verbunden ist, entweder den Binärmodus oder den Textmodus ein. Das Argument amode muss entweder den Wert O_BINARY oder O_TEXT haben, kann jedoch nicht beide Werte gleichzeitig annehmen. (Diese symbolischen Konstanten sind in fcntl.h definiert.)
Rückgabewert
setmode gibt bei erfolgreicher Ausführung den vorherigen Übersetzungsmodus zurück. Im Fehlerfall gibt die Funktion -1 zurück und weist der globalen Variablen errno den folgenden Wert zu:
EINVAL |
Invalid argument (Ungültiges Argument) |
EBADF |
Bad file number (Ungültige Dateinummer) |
Beispiel
#include <fcntl.h>
#include <io.h>
#include <stdio.h>
int main (int argc, char ** argv )
(
FILE *fp;
int newmode;
long where;
char buf[256];
fp = fopen( argv[1], "r+" );
if ( !fp )
{
printf( "Couldn't open %s\n", argv[1] );
return -1;
}
newmode = setmode( fileno( fp ), O_BINARY );
if ( newmode == -1 )
{
printf( "Couldn't set mode of %s\n", argv[1] );
return -2
}
fp->flags |= _F_BIN;
where = ftell( fp );
printf ("file position: %d\n", where );
fread( buf, 1, 1, fp );
where = ftell ( fp );
printf( "read %c, file position: %ld\n", *buf, where );
fclose ( fp );
return 0;
}
Portabilität
POSIX | Win32 | ANSI C | ANSI C++ |
---|---|---|---|
+ |