FREAD(3S)

НАЗВАНИЕ
fread, fwrite - двоичный ввод/вывод

СИНТАКСИС


	#include <stdio.h>

	#include <sys/types.h>



	int fread (ptr, size, nitems, stream)

	char *ptr;

	int nitems;

	size_t size;

	FILE *stream;



	int fwrite (ptr, size, nitems, stream)

	char *ptr;

	int nitems;

	size_t size;

	FILE *stream;

ОПИСАНИЕ
Функция fread считывает nitems элементов данных из заданного потока ввода stream в область памяти, на начало которой указывает аргумент ptr. Элементом данных считается последовательность байт (не обязательно завершающаяся нулевым байтом) длины size. Функция fread прекращает считывание байт в случае достижения конца файла, обнаружения ошибки, а также если считаны nitems элементов. После выполнения функции fread текущей позицией в потоке становится байт, следующий за последним прочитанным; содержимое потока stream не изменяется.

Функция fwrite записывает не более nitems элементов данных из области памяти, на начало которой указывает аргумент ptr, в заданный поток вывода stream. В случае обнаружения ошибки fwrite прекращает запись. После выполнения функции fwrite текущей позицией в потоке становится байт, следующий за последним записанным; содержимое записываемого массива не изменяется.

Аргументом size, как правило, является sizeof(*ptr), где псевдофункция sizeof возвращает длину элемента данных, адресуемых указателем ptr. Если аргумент ptr не является указателем на символ, его следует преобразовать к типу (char *).

СМ. ТАКЖЕ
read(2), write(2), fopen(3S), getc(3S), gets(3S), printf(3S), putc(3S), puts(3S), scanf(3S), stdio(3S).

ДИАГНОСТИКА
Функции fread и fwrite возвращают фактическое количество прочитанных или записанных элементов данных. Если nitems меньше либо равно нулю, то ничего не считывается и не записывается, и обе функции возвращают нулевое значение.