_read
Функция Считывает данные из файла.
Синтаксис #include<io.h>
int _read(int handle, void *buf, unsigned len);
Файл, содержащий io.h
прототип
Описание
Функция _read делают попытку считать len байт из
файла, связанного с handle, в буфер, адресуемый
параметром buf. Функция _read является
непосредственным вызовом операции чтения DOS.
В файле, открытом в текстовом режиме, функция read
не удаляет символы "возврат каретки".
Параметр handle - это тот же самый параметр, что
получают на выходе функций creat, open, dup, dup2.
Функция _read начинает чтение с текущего положения
указателя позиции в файле. Когда чтение завершено,
функция увеличивают указатель файла на число
считанных байт. При работе функций с устройствами,
байты данных считываются непосредственно с
устройства.
_read может считать за один раз до 65534 байт,
поскольку 65535 (0xFFFF) это -1, индикатор ошибки.
Возвращаемое При успешном завершении возвращается положительное
значение целое число, являющееся числом байтов, помещенных
в буфер; По концу файла (EOF), функция возвращает
нуль. При ошибке _read возвращает -1, и глобальной
переменной errno присваивает одно из следующих
значений:
EACCES - Доступ запрещен.
EBADF - Неверный номер файла.
Переносимость _read уникальна для DOS.
Смотрите также _open, read, _write.
Пример:
#include<stdio.h>
#include<io.h>
#include<alloc.h>
#include<fcntl.h>
#include<process.h>
/* #include<sys\stat.h> */
int main(buffer)
{
void *buf;
int handle,bytes;
buf = malloc(10);
/* Поиск в текущей директории файла с именем TEST.$$$ и
попытка чтения из него 10 байт. Перед запуском этой
программы необходимо создать файл TEST.$$$ */
if((handle = open("TEST.$$$",O_RDONLY|O_BINARY))== -1)
{
printf("Ошибка при открытии файла.\n");
exit(1);
}
if((bytes = _read(handle,buf,10))==-1)
{
printf("Ошибка чтения.\n");
exit(1);
}
printf("Считано %d байт.\n",bytes);
return 0;
}
|