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