fwrite
На ru.cppreference.net
< c | ввод-вывод
| Определено в заголовке <stdio.h>
|
||
size_t fwrite( const void* buffer, size_t size, size_t count,
FILE* stream );
|
(до C99) | |
size_t fwrite( const void* restrict buffer, size_t size, size_t count,
FILE* restrict stream );
|
(начиная с C99) | |
Записывает count объектов из заданного массива buffer в выходной поток stream. Объекты записываются так, как если бы каждый объект интерпретировался как массив из unsigned char и fputc size вызывалось раз для каждого объекта, чтобы записать эти unsigned char в stream, по порядку. Индикатор позиции файла для потока продвигается на количество записанных символов.
Если происходит ошибка, результирующее значение индикатора позиции файла для потока не определено.
Параметры
| buffer | - | указатель на первый объект в записываемом массиве |
| size | - | размер каждого объекта |
| count | - | количество объектов для записи |
| stream | - | указатель на выходной поток |
Возвращаемое значение
Количество успешно записанных объектов, которое будет меньше count только в случае ошибки.
Если size или count равно нулю, fwrite возвращает ноль и не выполняет никаких других действий.
Пример
Запустить этот код
#include <assert.h>
#include <stdio.h>
#include <stdlib.h>
enum { SIZE = 5 };
int main(void)
{
double a[SIZE] = {1, 2, 3, 4, 5};
FILE* f1 = fopen("file.bin", "wb");
assert(f1);
size_t r1 = fwrite(a, sizeof a[0], SIZE, f1);
printf("wrote %zu elements out of %d requested\n", r1, SIZE);
fclose(f1);
double b[SIZE];
FILE* f2 = fopen("file.bin", "rb");
size_t r2 = fread(b, sizeof b[0], SIZE, f2);
fclose(f2);
printf("read back: ");
for (size_t i = 0; i < r2; ++i)
printf("%0.2f ", b[i]);
}
Вывод:
wrote 5 elements out of 5 requested
read back: 1.00 2.00 3.00 4.00 5.00
Ссылки
- Стандарт C23 (ISO/IEC 9899:2024):
- 7.21.8.2 Функция fwrite (стр.: TBD)
- Стандарт C17 (ISO/IEC 9899:2018):
- 7.21.8.2 Функция fwrite (стр.: TBD)
- Стандарт C11 (ISO/IEC 9899:2011):
- 7.21.8.2 Функция fwrite (стр.: 335-336)
- Стандарт C99 (ISO/IEC 9899:1999):
- 7.19.8.2 Функция fwrite (стр.: 301-302)
- Стандарт C89/C90 (ISO/IEC 9899:1990):
- 4.9.8.2 Функция fwrite
См. также
(C99)(C11)(C11)(C11)(C11) |
выводит форматированный вывод в stdout, файловый поток или буфер (функция) |
| записывает строку символов в файловый поток (функция) | |
| читает из файла (функция) | |
Документация C++ для fwrite
| |