CodeNet / Языки программирования / C / C++ / Linux/Unix / Справочник С/C++ для UNIX - Список функций
CodeNet / Языки программирования / C / C++ / Руководства и справочные материалы по C/C++ / Справочники по функциям / Справочник С/C++ для UNIX - Список функций
CodeNet / Языки программирования / C / C++ / Руководства и справочные материалы по C/C++ / Справочники по функциям / Справочник С/C++ для UNIX - Список функций
read
READ
#include<io.h> требуется только для объявления
функции
int read(handle, buffer,count)
int handle; handle-р, ссылающийся на откры-
тый файла
char *buffer; память для хранения данных
unsigned int count; максимальное количество байтов
Описание.
Функция read позволяет читать байты count из файла, связан-
ного с handle, в буфер buffer. Операции чтения начинаются с теку-
щей позиции указателя на файл, который соответствует данному фай-
лу. После выполнения операции чтения этот указатель устанавлива-
ется на следующий непрочитанный символ.
Возвращаемое значение.
Функция read возвращает число действительно прочитанных
байтов, которое может быть меньше, чем count. Возвращаемое значе-
ние 0 указывает на попытку чтения конца файла, а 1 - свидетельст-
вует об ошибке; в этих случаях errno устанавливается в значение,
которое описано ниже.
Величина Смысловое значение
EBADF заданный handle неверный, или файл не яв-
ляется открытым для чтения, или же файл
заблокирован (закрыт). (Версия MS DOS 3.0
и последующие).
Если прочитано больше 32К (максимальный размер типа int) из
файла, возвращаемое значение будет типа unsigned int (см.пример,
приведенный ниже). Однако максимальное число байтов, которое мож-
но прочитать из файла, равно 65534; поскольку 65534 (или OXFFFF)
является неотличимым от -1, поэтому будет возвращена ошибка. Если
файл открыт в текстовом режиме, возвращаемое значение может не
соответствовать числу действительно прочитанных байтов. Если тек-
стовый режим эффективен, каждая пара "ВК-ПС" заменяется символом
ПС. Подсчитывается в возвращаемом значении только отдельный сим-
вол ПС. Эта замена не влияет на указатель файла.
См.также creat, fread, open, write.
Замечание: В MS DOS, когда файл открыт в текстовом режиме,
символ трактуется как индикатор конца файла. Если встречается
CONTROLL-Z, чтение оканчивается и при следующем чтении возвраща-
ется 0 байтов. Индикатор конца файла может воспрепятствовать
очистке файла.
Пример:
#include <io.h>
#include <stdio.h>
#include <fcntl.h>
char buffer [60000]
main ()
{
int fh;
unsigned int nbytes=60000, bytesread;
if ((fn=open("c:/data/conf.dat",O_RDONLY))==-1) {
perror("open failed on input file");
exit (1);
}
if ((bytesread=read(fh,buffer,nbytes))==-1)
perror("");
else
printf("Read %u bytes from file\n",bytesread);
.
.
.
}
