Freigeben über


_read

Liest Daten aus einer Datei.

int _read( 
   int fd, 
   void *buffer, 
   unsigned int count  
);

Parameter

  • fd
    Dateideskriptor, der die geöffnete Datei verweist.

  • buffer
    Speicherort für Daten.

  • count
    Maximale Anzahl Bytes.

Rückgabewert

_Lesen gibt die Anzahl der gelesenen Bytes zurück, die möglicherweise kleiner als zählen ist, wenn weniger als die Zählbytes gibt, die in der Datei verbleiben, oder wenn die Datei im Textmodus geöffnet war, in diesem Fall jedes Paar des Wagenrücklauf-Zeilenvorschubs (CR-LF) durch ein einzelnes Zeilenvorschubzeichen ersetzt wird. Nur das einzelne Zeilenvorschubzeichen wird im Rückgabewert gezählt. Die Ersetzung nicht beeinflusst der Dateizeiger.

Wenn versucht, die Funktion am Dateiende gelesen, gibt sie 0 zurück. Wenn fd NULL ist, ist die Datei nicht zum Lesen geöffnet, oder die Datei wird, der ungültige Parameterhandler gesperrt wird aufgerufen, wie in Parametervalidierung beschrieben. Wenn die Ausführung zulässig ist, um fortzufahren, kehrt die Feature - 1 zurück und legt errno auf EBADF fest.

Wenn PufferNULL, wird der ungültige Parameterhandler aufgerufen. Wenn die Ausführung zulässig ist, um fortzufahren, gibt die Funktion -1 zurück und errno ist auf EINVAL festgelegt.

Weitere Informationen über diese und andere Rückgabecodes, finden Sie unter _doserrno, errno, _sys_errlist und _sys_nerr.

Hinweise

Die _read-Funktion liest maximal in Zählbytes Puffer aus der Datei, die fd zugeordnet ist. Der Lesevorgang beginnt in der aktuellen Position des Dateizeigers, der der angegebenen Datei zugeordnet ist. Nach den Lesevorgang zeigt der Dateizeiger beim folgenden ungelesenen Zeichen.

Wenn die Datei im Textmodus geöffnet war, wird das Lesen, wenn _read ein STRG+Z-Zeichen trifft, das als Dateiende-Indikator behandelt wird. Verwenden Sie _lseek, den Dateiende-Indikator zu löschen.

Anforderungen

Routine

Erforderlicher Header

_read

<io.h>

Weitere Informationen zur Kompatibilität finden Sie unter Kompatibilität in der Einführung.

Bibliotheken

Alle Versionen C-Laufzeitbibliotheken.

Beispiel

// crt_read.c
/* This program opens a file named crt_read.txt
 * and tries to read 60,000 bytes from
 * that file using _read. It then displays the
 * actual number of bytes read.
 */

#include <fcntl.h>      /* Needed only for _O_RDWR definition */
#include <io.h>
#include <stdlib.h>
#include <stdio.h>
#include <share.h>

char buffer[60000];

int main( void )
{
   int fh;
   unsigned int nbytes = 60000, bytesread;

   /* Open file for input: */
   if( _sopen_s( &fh, "crt_read.txt", _O_RDONLY, _SH_DENYNO, 0 ) )
   {
      perror( "open failed on input file" );
      exit( 1 );
   }

   /* Read in input: */
   if( ( bytesread = _read( fh, buffer, nbytes ) ) <= 0 )
      perror( "Problem reading file" );
   else
      printf( "Read %u bytes from file\n", bytesread );

   _close( fh );
}

Eingabe: crt_read.txt

Line one.
Line two.

Ausgabe

Read 19 bytes from file

Siehe auch

Referenz

E/A auf niedriger Ebene

_creat, _wcreat

fread

_open, _wopen

_write