_read

Функция            Считывает данные из файла.

Синтаксис          #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.

Смотрите также      _open read _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;
}