Condividi tramite


_read

legge i dati da un file.

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

Parametri

  • fd
    Descrittore del file che fa riferimento al file aperto.

  • buffer
    percorso di archiviazione per i dati.

  • conteggio
    Numero massimo di byte.

Valore restituito

_lettura restituisce il numero di byte letti, che potrebbero essere minore conteggio se vi sono meno che conteggio byte che rimangono nel file o se il file è stato aperto in modalità testo, nel qual caso ogni coppia di un feed di ritorno-linea shopping (CR-LF) viene sostituita con un carattere di avanzamento riga.Solo il carattere di avanzamento riga è incluso il valore restituito.La sostituzione non influisce sul puntatore del file.

Se la funzione tenta di leggere alla fine di un file, restituisce 0.se fd non è valido, il file non è aperto per indicare, oppure il file è bloccato, il gestore non valido di parametro viene richiamato, come descritto in Convalida dei parametri.Se l'esecuzione è consentita per continuare, la funzione restituisce a 1 e set errno in EBADF.

se buffer viene NULL, il gestore non valido di parametro viene richiamato.Se l'esecuzione è consentita per continuare, la funzione restituisce -1 e errno è impostato su EINVAL.

Per ulteriori informazioni su questa e su altri codici restituiti, vedere _doserrno, errno, _sys_errlist e _sys_nerr.

Note

_read la funzione legge il massimo conteggio byte in buffer dal file associato fd.L'operazione di lettura partire dalla posizione corrente del puntatore del file associato al file specificato.Dopo l'operazione di lettura, i punti del puntatore del file al carattere non letto seguente.

Se il file è stato aperto in modalità testo, leggere termina quando _read rileva un carattere di CTRL+Z, che viene considerato come un indicatore di fine file.utilizzo _lseek per rimuovere il contrassegno di fine file.

Requisiti

routine

Intestazione di associazione

_read

<io.h>

Per ulteriori informazioni sulla compatibilità, vedere compatibilità nell'introduzione.

Librerie

Tutte le versioni di Librerie di runtime del linguaggio C.

Esempio

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

input: crt_read.txt

Line one.
Line two.

Output

Read 19 bytes from file

Vedere anche

Riferimenti

L'I/O di basso livello

_create, _wcreat

fread

_open, _wopen

_write