read
Функция Считывает данные из файла.
Синтаксис #include<io.h>
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<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;
}
|