Функция Считывает данные из файла.
Синтаксис #include
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.
Смотрите также _openread_write
Пример:
#include
#include
#include
#include
#include
/* #include */
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;
}