manipulaçao de arquivos em C
A linguagem C não possui nenhum comando de entrada/saída. Todas as operações de entrada/saída ocorrem mediante chamadas a funções da biblioteca C padrão. Embora tal característica possa, a primeira vista, parecer uma desvantagem, na verdade ela permite que o sistema de arquivos de C seja extremamente poderoso e flexível. O sistema de entrada/saída de C é único porque os dados podem ser transferidos na sua representação binária interna ou em um formato de texto legível por humanos. Isso torna fácil criar arquivos que satisfaçam qualquer necessidade.
Os arquivos em C são denominados STREAM. Um stream é associado a um arquivo por uma operação de abertura do arquivo e, a partir da associação, todas as demais operações de escrita e leitura podem ser realizadas. Existem dois tipos de streams: texto e binário.
Texto: armazena caracteres que podem ser exibidos diretamente na tela ou modificados por um editor de texto. Tem formato sequencial, os dados são lidos sequencialmente do início ao fim do arquivo.
Binário: sequencia de bits sujeita às convenções do programa gerador, e o acesso aos dados é randômico. É possível buscar uma determinada informação em qualquer posição.
Em C, um arquivo pode ser qualquer coisa, desde um arquivo em disco até um terminal ou uma impressora. Você associa um stream com um arquivo específico realizando uma operação de abertura. Uma vez o arquivo aberto, informações podem ser trocadas entre ele e o seu programa. Nem todos os arquivos apresentam os mesmos recursos. Por exemplo, um arquivo em disco pode suportar acesso aleatório (sequencial), enquanto um teclado não pode. Isso releva um ponto importante sobre o sistema de E/S de C: todas as streams são iguais, mas não todos os arquivos. Se o arquivo pode suportar acesso aleatório (algumas vezes referido como solicitação de posição), abrir este arquivo também inicializa o indicador de posição no arquivo para o começo do arquivo. Quando cada caractere é lido ou