A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

Arquivos associado a um dispositivo de armazenamento

Apresentações semelhantes


Apresentação em tema: "Arquivos associado a um dispositivo de armazenamento"— Transcrição da apresentação:

1 Arquivos associado a um dispositivo de armazenamento
pode ser tratado como stream sequência de bytes sequência de registros (estruturas) acesso sequencial aleatório N-1 eof Nome1 fone1 nome2 fone2 nome3 fone3 nome4 fone

2 Arquivos Estratégias: Funções em C OU: Objetos em C++
fopen – abre ou cria um arquivo fread – realiza a leitura de um arquivo fwrite – realiza a escrita em um arquivo fclose – fecha um arquivo OU: Objetos em C++ Contrutor: cria ou abre o arquivo Stream: escreve ou lê dados Destrutor fecha o arquivo

3 Arquivos Infra-estrutura necessária: Sistema Operacional:
manutenção do sistema de arquivos (file systems) gerenciamento de acessos interfaces com dispositivos físicos Dispositivos físicos discos magnéticos – trilhas/setores/clusters C:\teste.doc Unidade física, restrições de acesso, tamanho, início, encadeamento, organização(cluster) Acesso a uma trilha e setor

4 Arquivos Discos Magnéticos: Trilhas concêntricas
Cilindros: junção das trilhas de mesma localização relativa nas diversas superfícies Setores: unidades de armazenamento (512 bytes) Cluster: agrupamento de setores (S.O.) Densidade armazenamento : Gbits/pol2 300 – 500 mil BPI (bits per inch) em cada trilha 2.000 TPI (tracks per inch) -> 0,635 nm full stroke : 15 a 20 ms (67hz) Trilhas adjacentes: 1 e 2 ms Base: alumínio/magnésio vidro (ibm) Tempo Acesso: busca+latência rotacional+comandos Latência média: rpm -> 5,56 ms 7.200 rpm -> 4,17 ms rpm -> 3,00 ms Busca média: 8,5 -> 6,5 ms

5 Arquivos chkdsk a: O número de série do volume é F815-97A8
bytes de espaço total em disco bytes em dois arquivos do usuário bytes disponíveis no disco 512 bytes em cada unidade de alocação 2.847 total de unidades de alocação no disco 570 unidades de aloc. disponíveis no disco Tamanho: 1.4 Mbytes Cluster: 512 bytes

6 Arquivos chkdsk c: volume WINME criado em 30/9/2000 as 18hs
O número de série do volume é FB kilobytes de espaço total em disco kilobytes disponíveis 8.192 bytes em cada unidade de alocação total de unidades de alocação no disco unidades de aloc. disponíveis no disco Tamanho: 10 Gbytes Cluster: 8 Kbytes

7 Arquivos chkdsk d: 4.285.173.760 bytes de espaço total em disco
bytes em 742 arquivos ocultos bytes em pastas bytes em arquivos de usuário bytes disponíveis no disco 4.096 bytes em cada unidade de alocação total de unidades de alocação no disco unidades de aloc. disponíveis no disco Tamanho: 4 Gbytes Cluster: 4Mbytes

8 Arquivos Fragmentação externa:
- ferramentas de desfragmentação do sistema operacional Fragmentação interna - tratamento com administração de partições de disco Cluster Cluster Cluster Cluster Cluster 4

9 Arquivos Fragmentação externa:
- ferramentas de desfragmentação do sistema operacional Fragmentação interna - tratamento com administração de partições de disco Cluster Cluster Cluster Cluster Cluster 4

10 Arquivos Estratégias: Funções em C
Exemplo: leitura de caracteres de arquivo para monitor #include <stdio.h> #include <stdlib.h> void main(){ FILE *fp; //ponteiro para arquivo char c; fp =fopen(“nome.txt”, “r”); If (fp==NULL) exit(0); while ( (c= fgetc(fp)) != EOF){ cout.put(c); } fclose(fp);

11 Arquivos Estratégias: Objetos em C++ Exemplo: arquivo de clientes
#include <iostream> using namespace std; #include <fstream> #include <cstdlib> int main() { int aux_cod; char aux_nome[30]; char aux_fone[30]; ofstream arquivoCliente( "cliente.dat", ios::out ); if ( !arquivoCliente ) { // testa abertura do arquivo cerr << "Arquivo não pode ser aberto!" << endl; exit( 1 ); } cout<<"Digite o código, nome e fone dos clientes: "<<endl; while ( cin >> aux_cod >> aux_nome >> aux_fone ) { arquivoCliente << aux_cod << ' ' << aux_nome << ' ' << aux_fone << '\n'; cout << "Mais um ? "; return 0;

12 Arquivos 1 nome1 fone1 2 nome2 fone2 3 nome3 fone3
Estratégias: Objetos em C++ Exemplo: arquivo de clientes #include <iostream> using namespace std; #include <fstream> #include <cstdlib> int main() { int aux_cod; char aux_nome[30]; char aux_fone[30]; ofstream arquivoCliente( "cliente.dat", ios::out ); if ( !arquivoCliente ) { // testa abertura do arquivo cerr << "Arquivo não pode ser aberto!" << endl; exit( 1 ); } cout<<"Digite o código, nome e fone dos clientes: "<<endl; while ( cin >> aux_cod >> aux_nome >> aux_fone ) { arquivoCliente << aux_cod << ' ' << aux_nome << ' ' << aux_fone << '\n'; cout << "Mais um ? "; return 0; Declaração do objeto e parâmetros para construtor Sobrecarga de operadores: testa Se abertura do arquivo está ok! Operadores de inserção em stream para a escrita no arquivo! 1 nome1 fone1 2 nome2 fone2 3 nome3 fone3

13 Arquivos Estratégias: Objetos em C++ Exemplo: arquivo de clientes
#include <iostream> using namespace std; #include <fstream> #include <cstdlib> int main() { int aux_cod; char aux_nome[30]; char aux_fone[30]; ifstream arquivoCliente( "cliente.dat", ios::in ); if ( !arquivoCliente ) { // testa abertura do arquivo cerr << "Arquivo não pode ser aberto!" << endl; exit( 1 ); } cout<<“Dados no arquivo: "<<endl; while (arquivoCliente >> aux_cod >> aux_nome >> aux_fone ) { cout << aux_cod << ‘ ' << aux_nome << ‘ ' << aux_fone << endl; return 0;

14 Arquivos Funções membro auxiliares
seekg, seekp – permitem o posicionamento de ponteiros para leitura e gravação. Pode-se indicar um número de bytes a partira da posição corrente, do início do arquivo ou do final do arquivo (ios::curr, ios::beg, ios::end) ex.: arquivoCliente.seekg(n); arquivoCliente.seekg(n, ios::curr); tellg, tellp - permitem recuperar a posição corrente dos ponteiros de leitura e gravação ex.: arquivoCliente.seekg(0, ios::end); posicao= arquivoCliente.tellg(); //posição equivale ao tamanho do arquivo


Carregar ppt "Arquivos associado a um dispositivo de armazenamento"

Apresentações semelhantes


Anúncios Google