ExpertiDict

C · Intermediário · Inglês · Técnico

fread e fwrite

/ˈɛf.ɹid ən ˈɛf.ɹaɪt/substantivo

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

Veja também

Todos os termos de C