_read
Načte data ze souboru.
int _read(
int fd,
void *buffer,
unsigned int count
);
Parametry
fd
Popisovač souboru ve vztahu k otevření souboru.vyrovnávací paměť
Umístění úložiště pro data.počet
Maximální počet bajtů.
Vrácená hodnota
_Číst vrátí počet bajtů přečtených, která může být menší než počet Pokud existují méně než počet bajtů vlevo v souboru nebo pokud byl soubor otevřen v textovém režimu, v případě return–line každou přepravu krmiv dvojice (CR-LF) je nahrazen jeden znak.Ve vrácené hodnotě se počítá pouze jeden znak.Náhradní ukazatel souboru neovlivní.
Funkce se pokusí přečíst na konec souboru, vrátí hodnotu 0.Pokud fd je neplatný, soubor není otevřen pro čtení, nebo soubor je uzamčen, vyvolat neplatný parametr popisovače, jak je popsáno v Ověření parametru.Pokud je povoleno spuštění pokračovat, funkce vrátí hodnotu –1 a sady errno na EBADF.
Pokud vyrovnávací paměti je NULL, je vyvolána parametr neplatný popisovač.Pokud je povoleno spuštění pokračovat, vrátí funkce hodnotu -1 a errno je nastavena na EINVAL.
Další informace o této a dalších návratové kódy, viz _doserrno, kód chyby, _sys_errlist a _sys_nerr.
Poznámky
_read Funkce přečte maximálně počet bajtů do vyrovnávací paměti ze souboru spojené s fd.Operace čtení začíná v aktuální pozici ukazatele souboru přidružený k danému souboru.Po operaci čtení ukazatele souboru odkazuje na další nepřečtenou znak.
Pokud byl soubor otevřen v textovém režimu, čtení ukončí při _read nalezne znak CTRL + Z, je považován za indikátorem konce souboru.Použití _lseek zrušte indikátorem konce souboru.
Požadavky
Rutina |
Požadované záhlaví |
---|---|
_read |
<io.h> |
Další informace o kompatibilitě v tématu Compatibility v úvodu.
Knihovny
Všechny verze C Runtime knihovny.
Příklad
// 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 );
}
Vstup: crt_read.txt
Line one.
Line two.
Výsledek
Read 19 bytes from file