read

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

Синтаксис          #include
                   int read(int handle, void *buf, unsigned len);

Файл, содержащий   io.h
прототип

Описание           Функция read делает попытку считать len байт из
                   файла, связанного с handle, в буфер, адресуемый
                   параметром buf.

                   В файле, открытом в текстовом режиме, функция
                   read удаляет символы "возврат каретки" и выдает
                   "конец файла" (EOF), при получении символа
                   Ctrl-Z.

                   Параметр handle - это тот же самый параметр, что
                   получают на выходе функций creat, open, dup,
                   dup2.

                   Функция начинает чтение дисковых файлов с текуще-
                   го положения указателя файла. Когда чтение завер-
                   шено, данная функция увеличивает указатель файла
                   на число считанных байт. При работе функции с ус-
                   тройствами, байты данных считываются непосредст-
                   венно с устройства.

                   Максимально, read может ввести 65534 байта, т.к.
                   65535 это -1, индикатор ошибки.

Возвращаемое       При успешном завершении возвращается положительное
значение           целое число, являющееся числом байт, помещенных
                   в буфер; причем, если файл открывается в тексто-
                   вом режиме, функция read не включает символы
                   "возврата каретки" и символы Ctrl-z в число счи-
                   танных байтов. По концу файла (EOF), функция воз-
                   вращает нуль.

                   При ошибке функция возвращает значение -1, и гло-
                   бальной переменной errno присваивается одно из
                   следующих значений:

                   EACCES - Отказ доступа;
                   EBADF  - Неверный номер файла.

Переносимость      Функция read поддерживается на системах UNIX.

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