Arquivos em c

Disponível somente no TrabalhosFeitos
  • Páginas : 10 (2420 palavras )
  • Download(s) : 0
  • Publicado : 14 de junho de 2011
Ler documento completo
Amostra do texto
[pic]

Universidade do Estado de Santa Catarina – UDESC

Disciplina de LPG1 – TURMA B

Trabalho de Manipulação de Arquivos Texto – C++ – 29/09/2009

Prof. Alexandre Takahashi Albert

Alunos: Mário César Borba ;

Dyogo Caetano.

Manipulação de Arquivos em C

A linguagem C não possui nenhum comando de entrada/saída. Todas as operações de entrada/saída ocorremmediante 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 criararquivos que satisfaçam qualquer necessidade.

Streams e Arquivos

O sistema de E/S de C fornece uma interface consistente ao programador C, independentemente do dispositivo real que é acessado. Isto é, o sistema de E/S de C provê um nível de abstração entre o programador e o dispositivo utilizado. Esta abstração é chamada de stream e o dispositivo real é chamado de arquivo. É importanteentender como streams e arquivos se integram.

Streams

O sistema de arquivos de C é projetado para trabalhar com uma ampla variedade de dispositivos, incluindo terminais, acionadores de disco e acionadores de fita. Embora cada um dos dispositivos seja muito diferente, o sistema de arquivo com buffer transforma-os em um dispositivo lógico chamado de stream. Todas as streams comportam-se de formasemelhante.
Pelo fato de as streams serem totalmente independentes do dispositivo, a mesma função pode escrever em um arquivo em disco ou em algum outro dispositivo, como o console. Existem
dois tipos de streams: texto e binária.

Streams de Texto

Um stream de texto é uma seqüência de caracteres. O padrão C ANSI permite (mas não exige) que uma stream de texto seja organizada em linhasterminadas por um caractere de nova linha. Porém, o caractere de nova linha é opcional na última linha e é determinado pela implementação (a maioria dos compiladores de C não termina streams de texto com caracteres
de nova linha). Em uma stream de texto, certas traduções podem ocorrer conforme exigido pelo sistema host. Por exemplo, uma nova linha pode ser convertida em um par retorno decarro/alimentação de linha. Portanto, poderá não haver uma relação de um para um entre os caracteres que são escritos (ou lidos) e aqueles nos dispositivos externos. Além disso, devido a possíveis traduções, o número de caracteres escritos (ou lidos) pode não ser o mesmo que aquele encontrado no dispositivo externo.

Streams Binárias

Uma stream binária é uma seqüência de bytes com uma correspondênciade um para um
com aqueles encontrados no dispositivo externo – isto é, não ocorre nenhuma tradução de caracteres. Além disso, o número de bytes escritos (ou lidos) é o mesmo que o encontrado no dispositivo externo. Porém, um número definido pela implementação de bytes nulos pode ser acrescentado a um stream binário. Esse bytes nulos poderiam ser usados para aumentar a informação para que elapreenchesse um setor de um disco, por exemplo.

Arquivos

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 (seqüencial), 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...
tracking img