Partager via


_read

Lit des données à partir d'un fichier.

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

Paramètres

  • fd
    Descripteur de fichier faisant référence au fichier ouvert.

  • mémoire tampon
    Emplacement de stockage des données.

  • nombre
    nombre maximal d'octets.

Valeur de retour

_lecture retourne le nombre d'octets, qui peut être moins que compte s'il est moins de nombre d'octets conservés dans le fichier ou si le fichier a été ouvert en mode texte dans ce cas, chaque paire de retour-ligne de chariot (CR-LF) est remplacée par un caractère unique de saut de ligne.Seul le caractère unique de saut de ligne est compté dans la valeur de retour.le remplacement n'affecte pas le pointeur de fichier.

Si tente de fonction à lire à la fin de le fichier, il retourne 0.si fd est valide, le fichier n'est pas ouvert pour lire, ou le fichier est verrouillé, le gestionnaire de paramètre non valide est appelé, comme décrit dans Validation des paramètres.Si est autorisé à l'exécution de se poursuivre, la fonction retourne la valeur - 1 et définit errno à EBADF.

si la mémoire tampon est NULL, le gestionnaire de paramètre non valide est appelé.Si est autorisé à l'exécution de se poursuivre, la fonction retourne -1 et errno est défini à EINVAL.

Pour plus d'informations sur les codes de retour, consultez _doserrno, errno, _sys_errlist, et _sys_nerr.

Notes

La fonction d' _read lit un maximum des octets de nombre dans la mémoire tampon du fichier associé à fd.L'opération de lecture commence à la position actuelle du pointeur de fichier associé au fichier donné.Après l'opération de lecture, les points de pointeur de fichier au caractère non lu suivant.

Si le fichier a été ouvert en mode texte, la lecture se termine lorsque _read rencontre un caractère de CTRL+Z, qui est traité comme un indicateur de fin de fichier.utilisation _lseek de désactiver l'indicateur de fin de fichier.

Configuration requise

routine

en-tête requis

_read

<io.h>

Pour plus d'informations de compatibilité, consultez compatibilité dans l'introduction.

bibliothèques

toutes les versions de Bibliothèques runtime C.

Exemple

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

entrée : crt_read.txt

Line one.
Line two.

Sortie

Read 19 bytes from file

Voir aussi

Référence

E/S de bas niveau

_create, _wcreat

fread

_open, _wopen

_write