C · Intermediário · Inglês · Técnico
fread e fwrite
Funções que leem e gravam blocos de bytes em um arquivo, recebendo o tamanho do elemento e a quantidade. Devolvem quantos elementos foram transferidos, que pode ser menos que o pedido.
Onde usar
São a base da E/S binária. Compare o retorno com a quantidade esperada para detectar fim de arquivo ou erro.
Em código
int v[4] = {1, 2, 3, 4};
FILE *f = fopen("v.bin", "wb");
if (f && fwrite(v, sizeof v[0], 4, f) == 4)
puts("ok");
if (f) fclose(f);Exemplos
Check that fwrite wrote the whole block.
Confira se o fwrite escreveu o bloco inteiro.
fread returns fewer items at end of file.
O fread devolve menos itens no fim do arquivo.
Cuidado
Gravar structs inteiras com fwrite, o que não é portável entre compiladores por causa do padding e da endianness.
Sinônimos
E/S binária