_read
Считывает данные из файла.
int _read(
int fd,
void *buffer,
unsigned int count
);
Параметры
fd
Идентификатор файла, относящийся к открытому файлу.Буфер
Место хранения для данных.Счетчик
Максимальное число байтов.
Возвращаемое значение
_чтение возвращает количество считанных байтов, которые могут быть меньше Счетчик если меньше Счетчик байты, оставленные в файл или если файл был открыт в режиме текст, то в этом случае каждая пара канал очереди возврата экипажа (CR-LF) заменяется одним символом перевода строки.Только один символ перевода строки учитывается в возвращаемом значении.Замена не влияет на указатель файла.
Функция if пытается считать в конце файла, возвращается значение 0.If fd недопустимый файл не открыт для чтения или файл блокировано, недопустимый параметр вызван обработчик, как описано в разделе Проверка параметров.Если выполнение может быть продолжено, то функция возвращает и задает - 1 errno В EBADF.
If Буфер существует Значение NULLнедопустимый параметр, обработчик вызывается.Если выполнение может быть продолжено, то функция возвращает значение -1, errno равно EINVAL.
Дополнительные сведения об этом и других кодах возврата см. _doserrno, errno, _sys_errlist и _sys_nerr.
Заметки
_read функция читает максимум Счетчик байты Буфер из файла, связанного с fd.Операция чтения начиная с текущей позиции указателя файла, связанного с данным файлом.После операции чтения, точки указателя файла к следующему непрочитанному знаку.
Если файл был открыт в режиме чтения текст, когда заканчивается _read встречает символы CTRL+Z, который обрабатывается как признак конца файла.Используйте _lseek очистить признак конца файла.
Требования
Процедура |
Обязательный заголовок |
---|---|
_read |
<io.h> |
Дополнительные сведения о совместимости см. Совместимость во введении.
Библиотеки
Все версии Библиотеки времени выполнения C.
Пример
// 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 );
}
Вход: crt_read.txt
Line one.
Line two.
Output
Read 19 bytes from file