Udostępnij za pośrednictwem


_read

Odczytuje dane z pliku.

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

Parametry

  • fd
    Plik deskryptora odnoszące się do otwartego pliku.

  • bufor
    Miejsca przechowywania danych.

  • Licznik
    Maksymalna liczba bajtów.

Wartość zwracana

_odczytać zwraca liczbę bajtów odczytanych, która może być mniejsza niż Licznik , jeżeli jest mniej niż liczba bajtów pozostawione w pliku lub jeśli plik został otwarty w trybie tekstowym, w którym to przypadku każdego przewozu return–line paszy pary (CR LF) zastępuje znak wysuwu wiersza jednej.Tylko znak wysuwu wiersza jednej jest liczony w wartości zwracanej.Zastąpienie nie wpływa na wskaźnik pliku.

Jeśli funkcja próbuje odczytać na koniec pliku, zwraca wartość 0.Jeśli fd jest nieprawidłowy, plik nie jest otwarty do odczytu, lub plik jest zablokowany, wywoływana jest funkcja obsługi nieprawidłowy parametr, jak opisano w Sprawdzanie poprawności parametru.Jeśli wykonanie jest dozwolone, aby kontynuować, funkcja zwraca –1 i zestawy errno do EBADF.

Jeśli buforu jest NULL, wywoływana jest funkcja obsługi nieprawidłowy parametr.Jeśli wykonanie może w dalszym ciągu, funkcja zwraca wartość -1 i errno jest ustawiona na EINVAL.

Aby uzyskać więcej informacji na temat tego i innych kodów powrotu, zobacz _doserrno, errno, _sys_errlist i _sys_nerr.

Uwagi

_read Funkcji odczytuje maksymalnie liczba bajtów do buforu z pliku skojarzonego z fd.Operacja odczytu rozpoczyna się w bieżącym położeniu wskaźnika pliku skojarzonego z danym plikiem.Po zakończeniu operacji odczytu wskaźnika pliku punktów do następnego znaku nieprzeczytane.

Jeśli plik został otwarty w trybie tekstowym, read kończy, gdy _read napotka znaku CTRL + Z, który jest traktowany jako wskaźnik końca pliku.Użyj _lseek wyczyść wskaźnik końca pliku.

Wymagania

Rozpoczęto wykonywanie procedury

Wymaganego nagłówka

_read

<io.h>

Informacji dotyczących zgodności, zobacz zgodności we wprowadzeniu.

Biblioteki

Wszystkie wersje biblioteki uruchomieniowej c.

Przykład

// 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 );
}

Dane wejściowe: crt_read.txt

Line one.
Line two.

Dane wyjściowe

Read 19 bytes from file

Zobacz też

Informacje

Niskiego poziomu we/wy

_creat, _wcreat

fread

_open, _wopen

_Write