Modificadores de tipos e Arquivos

Slides:



Advertisements
Apresentações semelhantes
TRATAMENTO DE ARQUIVOS EM C
Advertisements

Curso de aprofundamento na linguagem C
C/C++ para Sistemas Operacionais Professor: André Luis Meneses Silva /msn: Página:
Programação II Estruturas de Dados
Programação Básica em Java
Alocação Dinâmica de Memória
Prof. Luis Otavio Alvares
Políticas Curso de aprofundamento em linguagem C.
AULA – Linguagem C – Campos de Bits e Unions
Prof. Flavio Marcello Strelow
Arquivos Prof: Erivelto Tschoeke, Msc. –
Prof: Erivelto Tschoeke, Msc. –
Linguagem de Programação 1
Estruturas de Dados I Prof.: Sergio Pacheco Prof.: Sergio Pacheco 1 1.
Armazenamento de Dados em Arquivos
Slides Prof. Jean SIMÃO Revisão: Prof. João FABRO
Armazenamento de Dados em Arquivos
Fundamentos de Programação 1
Ling. e Técnicas de Programação I 3º semestre Plano de Ensino 2011
Tratamento de Ficheiros
O Portal do Estudante de Computação
Aula prática 13 Orientação a Objetos – C++ Parte 1
Aula 4 Prof. Naércio Filho Técnico em Informática
Curso de Nivelamento LCG
1 programa dados Utilização de ficheiros externos A maneira mais simples de escrever para um ficheiro externo é redireccionar a saída de um programa: em.
1 programa dados Utilização de ficheiros externos A maneira mais simples de escrever para um ficheiro externo é redireccionar a saída de um programa: em.
PROGRAMAÇÃO ESTRUTURADA II
Instruções condicionais
Conceitos de Linguagem de Programação
Ordenação e Pesquisa de Dados Marco Antonio Montebello Júnior
Manipulação de Arquivos em C
Arquivos Continuação.
Estrutura de dados II Carlos Oberdan Rolim Ciência da Computação Sistemas de Informação.
DAVID ANDERSON CARDOSO DANTAS
Aula Prática 12 Operações com Arquivos Monitoria
Linguagem de programação I A Carlos Oberdan Rolim Ciência da Computação Sistemas de Informação.
Curso de C/C++ Aula 4 Instrutor: Luiz Felipe Sotero
Paradigmas de Linguagens de Programação Linguagem Imperativa 1
C APÍTULO II Armazenando e recuperando dados. A RMAZENANDO E RECUPERANDO DADOS Agenda Salvar dados Abrir um arquivo Criar e gravar Fechar Ler Bloquear.
Aula 13 - Armazenamento de Dados em Arquivos
Introdução à Programação Orientada a Objetos com Java Paulo Borba Centro de Informática Universidade Federal de Pernambuco Programação Imperativa (e Ponteiros.
Educação Profissional Técnica de Nível Médio Curso Técnico de Informática Disciplina: Estrutura de Dados Professor: Cheli dos S. Mendes da Costa Arquivo.
Linguagem de programação I A Carlos Oberdan Rolim Ciência da Computação Sistemas de Informação.
Estruturas de Dados Aula 2: Estruturas Estáticas 07/04/2014.
Profa. Patrícia A. Jaques
Tratamento de ficheiros Abrir e fechar um ficheiro.
Estruturas de Dados Aula 7: Tipos Estruturados 23/04/2014.
Aula Prática 11 Operações com Arquivos Monitoria
Regras de escopo Escopo: trecho de codificação no qual o identificador possui significado Escopo de função: identificador válido dentro do trecho de uma.
Algoritmos e Estruturas de Dados
Operações com Arquivos Monitoria A estrutura FILE  É como um tipo de dado, mas não é um tipo propriamente dito  Definido no arquivo cabeçalho.
Estruturas de Dados Aulas 3 e 4: Uso da memória e Vetores
Aula Prática 11 Operações com Arquivos Monitoria
Manipulando arquivos texto com C
Programação de Computadores I – Arquivos
Salvando em Arquivos. Arquivos Um arquivo pode estar associado a qualquer dispositivo de entrada e saída, como por exemplo: teclado, video, impressora,
Paradigmas de Linguagens de Programação Conceitos da Linguagem Imperativa 1 Augusto Sampaio e Paulo Borba Centro de Informática Universidade Federal de.
Programação Computacional Aula 8: Entrada e Saída pelo Console Prof a. Madeleine Medrano
1 Programação em C Aula Considere que um banco armazena em arquivo as seguintes informações de seus clientes: número da conta (int), nome do cliente.
Profa. Maria Augusta Constante Puget
Aula de Entrada / Saída Monitores: Alessandro Luna Leonardo Ribeiro Mardoqueu Vieira Mozart Araújo Filho.
USP – ICMC – SSC SSC0300 2º Semestre 2015 Disciplina de Linguagem de Programação e Aplicações [ Eng. Elétrica / Eletrônica ] 1 Prof. Dr. Daniel Rodrigo.
Programação II Arquivos Autoria: Ernani Santos Modificação: Clebson Oliveira Adaptação: Claudia Boeres.
Programação de Computadores I – Arquivos Profa. Mercedes Gonzales Márquez.
Fundamentos de Programação 1 Slides 18 Prof. SIMÃO Jean Marcelo SIMÃO Linguagem C “Arquivos Seqüências ou de Texto ”.
Fundamentos de Programação 1 Slides 19 Prof. SIMÃO Jean Marcelo SIMÃO Linguagem C “Arquivos Binários”.
Alocação Dinâmica Dilvan Moreira. Objetivos  Entender o que são e como usar:  Gerenciamento de Memória  Alocação Dinâmica em C.
Estrutura de Dados STRUCTS Dilvan Moreira. Objetivos  Entender o que são e como usar:  Estrutura de Dados para a Linguagem C  Structs (Registros)
Fundamentos de Programação 1 Slides 18 Prof. SIMÃO Jean Marcelo SIMÃO Linguagem C “Arquivos Seqüências ou de Texto ”. 1.
Algoritmos e Estruturas de Dados I
Transcrição da apresentação:

Modificadores de tipos e Arquivos Curso de aprofundamento na linguagem C

Visibilidade e acesso Modificadores de tipos Classes de armazenamento Modo de acesso Tempo de vida Espaço de endereçamento Classes de armazenamento Qualificadores de tipos

Classes de armazenamento Automatic (auto) Static Register Typedef Extern

Automatic Variáveis de escopo local Armazenamento na pilha Tipo default

Static Espaço de endereçamento estático Variáveis globais Pode ser acessado a qualquer momento no programa Variáveis globais Modifica a classe de armazenamento Restrição de visualização

Static Pode ser aplicado a variáveis locais Variáveis locais com armazenamento estático transformam-se em variáveis globais com visibilidade local

Static Pode ser aplicado a funções e variáveis globais Restringe a visualização ao arquivo fonte (.c)

Extern Classe de armazenamento externa Endereços desconhecidos em tempo de compilação Resolvidas em tempo de link Declaração de globais inicializadas externamente Pode ser utilizado em funções

Register Variáveis com armazenamento em registradores Armazenamento sugerido Utilizada para otimizar laços Máquinas RISC Desuso por otimização

typedef Não é considerado um modificador de classe de armazenamento nos compiladores modernos Alias para tipos Declarações menores Aumento de portabilidade entre sistemas

Qualificadores de tipo Influem no modo de acesso Restrições de modificação const Restrições de otimização volatile

const Restringe a modificação de variáveis com este qualificador Não podem sofrer atualização Regra diferente para ponteiros Inicialização junto com definição Garantia pelo compilador que o conteúdo da variável não vai ser modificado

const Área de memória read-only Modificação forçada leva a um comportamento indefinido Pode ser aplicado a structs e unions Pode ser burlado e gerar erros de execução Ver apostila

volatile Restrição de otimização do compilador Variáveis que podem ser acessadas e modificadas por processos concorrentes Acesso a IO mapeado em memória

volatile struct devregs{ /* control & status */ unsigned short csr; /* data port */ unsigned short data; }; /* bit patterns in the csr */ #define ERROR 0x1 #define READY 0x2 #define RESET 0x4 /* absolute address of the device */ #define DEVADDR ((struct devregs *)0xffff0004) /* number of such devices in system */ #define NDEVS 4 /* * Busy-wait function to read a byte from * device n. * check range of device number. * Wait until READY or ERROR * if no error, read byte, return it * otherwise reset error, return 0xffff */ unsigned int read_dev(unsigned devno){ struct devregs *dvp = DEVADDR + devno; if(devno >= NDEVS) return(0xffff); while((dvp->csr & (READY | ERROR)) == 0) ; /* NULL - wait till done */ if(dvp->csr & ERROR){ dvp->csr = RESET; } return((dvp->data) & 0xff);

volatile Memória de hardware mapeada em struct struct devregs{ unsigned short volatile csr; unsigned short const volatile data; }; volatile struct devregs{ unsigned short csr; unsigned short const data; } *device; struct devregs{ unsigned short csr; unsigned short const data; }; volatile struct devregs *device;

E/S baseada em arquivos Streams <stdio.h> Streams default stdin stdout stderr

Operações com Arquivos Abertura/criação Arquivos texto Arquivos binários Leitura e Escrita Byte a byte Blocos Formatada Acesso randômico/seqüencial

Abertura Modo Retorna NULL se falhar R leitura W escrita FILE *fopen(char *name, char *mode); Modo R leitura W escrita A Concatenação B binário T texto (default) Retorna NULL se falhar Checagem recomendada

Leitura e Escrita int fgetc(FILE *stream); int fputc(char c, FILE *stream); Char *fgets(char *s, int size, FILE *stream); Int ungetc(int c, FILE*stream); Int fputs(const char *s, FILE *stream);

Leitura e Escrita int fprintf(FILE *stream, const char *format, ...); int fscanf(FILE *stream, const char *format, ...);

Leitura e Escrita size_t fread(void *ptr, size_t size, size_t nmemb, FILE *stream); size_t fwrite(const void *ptr, size_t size, size_t nmemb, FILE *stream); int feof(FILE *stream);

Acesso randômico int fseek(FILE *stream, long offset, int whence); SEEK_SET SEEK_END SEEK_CUR long ftell(FILE *stream); void rewind(FILE *stream);

Exercício Escrever um array de estruturas diretamente no arquivo e depois recuperá-lo e imprimir na tela