Arquivos
Operações em discos são executadas em entidades chamadas “arquivos”, um arquivo é uma coleção de bytes referenciados por um nome único, programas em linguagem C podem ler e gravar arquivos de diferentes maneiras, a linguagem C divide as categorias de acesso a disco em dois grandes grupos chamados de alto-nível, ou leitura e gravação bufferizda, e de baixo-nível, ou leitura e gravação não bufferizada.
Leitura e Gravação em Disco – Alto-Nível
Para este grupo, C oferece um pacote de funções de biblioteca que nos permite acessar arquivos de quatro modos diferentes:
Primeiro: os dados são lidos e escritos um caractere por vez. O método é análogo ao uso das funções putch(), que escreve um caractere na tela, e getche() que lê um caractere do teclado.
Segundo: os dados são lidos e escritos como “strings”. Analogamente ao uso das funções gets() e puts().
Terceiro: Os dados são lidos e escritos de modo formatado. Analogamente ao uso das funções printf() e scanf().
Quarto: Os dados são lidos e escritos num formato chamado “registro” ou “bloco”. Este é um grupo de dados de tamanho fixo e é usado para armazenar uma sequencia de dados com itens similares
Gravando um Arquivo Caractere a Caractere
O primeiro programa lê caracteres do teclado e, um por vez, escreve-os num arquivo em disco.
#include<stdio.h>
main()
{
FILE *fptr; char ch; fptr = fopen(“arqtext.txt”, “w”); while((ch = getche()) != `\r`) putc(ch, fptr) fclose(fptr);
}
Texto versus Binário
Uma outra maneira de classificar operações de acesso a arquivos é conforme a forma como eles são abertos: em modo texto ou em modo binário.
Um arquivo aberto em modo texto é interpretado em C como sequencias de caracteres agrupadas em linhas. As linhas são separadas por um único caractere chamado caractere de nova linha ou LF, de código ASCII 10 decimal.
Um arquivo aberto em modo texto é interpretado em DOS como sequencias de caracteres agrupadas em linhas. As linhas são separadas