Open Source Your Knowledge, Become a Contributor

Technology knowledge has to be shared and made accessible for free. Join the movement.

Create Content

Gravando e lendo Blocos de dados em Arquivos C


  • Podemos escrever e ler blocos de dados em arquivos C através das funções: fwrite() e fread()
  • A função fwrite()

unsigned fwrite(void *bloco, int numero_de_bytes, int total, FILE *arq)

bloco: ponteiro para a região de memória na qual estão os dados;
numero_de_bytes: tamanho de cada posição de memória a ser escrita;
total: quantidade de blocos de memória de tamanho "numero_de_bytes" que devem ser escritos;
arq: ponteiro associado ao arquivo onde os dados serão escritos.

Exemplo:

  • A função fread() é semelhante a fwrite() para realizar a leitura dos dados.

unsigned fread(void *bloco, int numero_de_bytes, int total, FILE *arq)

Exemplo:

  • Os acessos aos dados em um arquivo geralmente é sequencial, mas é possível fazer buscas e acessos randômicos através da função fseek():
  • Esta função posiciona a leitura ou escrita no arquivo em tantos bytes, a partir de um ponto especificado.
  • A função fseek recebe 3 parâmetros
    • fptr: o ponteiro para o arquivo;
    • numbytes: é o total de bytes a partir do tipo a ser pulado;
    • tipo: determina a partir de onde os numbytes de movimentação serão contados.
  • Os valores possíveis para tipo estão definidos em stdio.h e são: programa
  • Portanto, para mover numbytes a partir
    • do início do arquivo, tipo deve ser SEEK_SET
    • da posição atual, tipo deve ser SEEK_CUR
    • do final do arquivo, tipo deve ser SEEK_END
Open Source Your Knowledge: become a Contributor and help others learn. Create New Content