setmode

Aus RAD Studio
Wechseln zu: Navigation, Suche

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++

+