НАЗВАНИЕ
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 меньше либо равно нулю, то ничего не считывается
и не записывается, и обе функции возвращают нулевое
значение.