SlideShare uma empresa Scribd logo
1 de 18
Baixar para ler offline
Arquivos em C
Geanderson Esteves
Mestrando em Ciências da Computação
Universidade Federal de Minas Gerais
Conceitos Básicos
Conjuntos de informações mantidas no disco (memória
secundária)
Informações são “persistidas” em comparação com a
memória RAM (memória primária)
Sistema Operacional (OS) faz um “buffer” das informações
lidas/gravadas
Analogia do conceito
Conceitos Básicos
Em C, arquivos podem ser gravados de duas maneiras:
● Modo texto (conjunto de caracteres)
○ Arquivo texto pode ser tratado por qualquer editor
(e.g., bloco de notas, terminal, word, etc.)
● Modo binário (conjunto de bytes)
○ Ex: Grandes quantidades de informações de forma
eficiente
Operações Primordiais
● Abertura do arquivo (localização, alocação do buffer);
● Leitura do arquivo (informações do buffer são
disponibilizadas);
● Gravação do arquivo (alteração de dados preexistentes
ou acréscimo de novos dados);
● Fechamento do arquivo (atualização do buffer e
liberação de memória alocada);
Comandos Essenciais
FILE *fp;
FILE *fopen(char *nome_arquivo,
char *modo_de_acesso);
int fclose(FILE *fluxo);
Possíveis modos de acesso
modo_de_acesso Significado
r Abre o arquivo somente para leitura. O arquivo deve existir.
r+ Abre o arquivo para leitura e escrita. O arquivo deve existir.
w Abre o arquivo somente para escrita no início do arquivo. Apagará o conteúdo do
arquivo se ele já existir, criará um arquivo novo se ele não existir.
w+ Abre o arquivo para escrita e leitura, apagando o conteúdo pré-existente.
a Abre o arquivo para escrita no final do arquivo. Não apagará o conteúdo
pré-existente.
a+ Abre o arquivo para escrita no final do arquivo e leitura.
Ex1. Testando criação de um arquivo
#include <stdio.h>
int main()
{
FILE *fp;
fp = fopen ("README", "w");
if (fp == NULL) {
printf ("Houve um erro ao abrir o arquivo.n");
return 1;
}
printf ("Arquivo README criado com sucesso.n");
fclose (fp);
return 0;
}
Ex2. Lendo um arquivo
#include <stdio.h>
int main()
{
char c[41];
FILE *fp;
fp = fopen("README", "r");
while(fgets(c, 40, fp) != NULL)
puts(c);
fclose(fp);
return 0;
}
Ex3. Contando linhas de um arquivo
#include <stdio.h>
int main()
{
int c, nlinhas = 0;
FILE *fp;
fp = fopen("README", "r");
while((c=fgetc(fp))!=EOF)
if(c=='n') nlinhas++;
fclose(fp);
printf("Numero de linhas = %dn", nlinhas);
return 0;
}
Escrevendo em um arquivo
void fputc(int caractere, FILE *fluxo)
void fputs(char *string, FILE *fluxo)
void fprintf(FILE *fluxo, char *formatação)
int fwrite(void *dados, int tamanho_do_elemento,
int num_elementos, FILE *fluxo)
Escrevendo em um arquivo
Saída padrão Arquivos Explicação
putchar fputc Imprime apenas um caractere
puts fputs Imprime uma string diretamente, sem nenhuma formatação
printf fprintf Imprime uma string formatada
N/A fwrite Grava dados binários em um arquivo
Ex4. Escrevendo em um arquivo [1]
#include <stdio.h>
int main()
{
FILE *fp;
fp = fopen ("README", "w");
fprintf(fp, "Salvando alguma coisa no meu arquivo...n");
fclose(fp);
return 0;
}
Ex4. Escrevendo em um arquivo [2]
#include <stdio.h>
int main()
{
FILE *fp;
char frase[] = "Universidade Federal de Minas Gerais";
fp = fopen("file", "w");
for(int i = 0; frase[i]!='0'; i++)
fprintf(fp, "%c", frase[i]);
return 0;
}
Arquivos binários
Servem para salvar (recuperar) as informações tais como se
encontram na memória principal
Permite o manuseio de grandes quantidades de dados de
forma mais eficiente (i.e., não sequencial)
Um arquivo binário permite a busca por qualquer informação
contida no arquivo (fseek)
Arquivos binários
int fread(void* p, int tam, int num,
FILE *fp);
int fwrite(void* p, int tam, int
num, FILE *fp);
int fseek(FILE *fp, long offset, int
origem)
Ex5. Escrevendo um arquivo binário
#include <stdio.h>
int main()
{
FILE *fp;
fp=fopen("test.bin", "wb");
int x[5]= {1, 2, 3, 4, 5};
fwrite(x, sizeof(x[0]), sizeof(x)/sizeof(x[0]), fp);
return 0;
}
Referências
● ZIVIANI, Nivio. Projeto de Algoritmos com
Implementação em Pascal e C
● C Programming.
http://www.cprogramming.com/tutorial/c-tutorial.html
● Tutorials Point.
https://www.tutorialspoint.com/c_standard_library

Mais conteúdo relacionado

Mais procurados

Banco de dados exercícios resolvidos
Banco de dados exercícios resolvidosBanco de dados exercícios resolvidos
Banco de dados exercícios resolvidosGleydson Sousa
 
TIC - Conceitos Básicos
TIC - Conceitos BásicosTIC - Conceitos Básicos
TIC - Conceitos BásicosAntonio Semedo
 
A História e Evolução dos Computadores
A História e Evolução dos ComputadoresA História e Evolução dos Computadores
A História e Evolução dos ComputadoresNascimentoeli
 
Programação avançada
Programação avançada Programação avançada
Programação avançada Ilídio Costa
 
Introdução a Linguagem de Programação C
Introdução a Linguagem de Programação CIntrodução a Linguagem de Programação C
Introdução a Linguagem de Programação CGercélia Ramos
 
Aula 01 - JavaScript: Introdução
Aula 01 - JavaScript: IntroduçãoAula 01 - JavaScript: Introdução
Aula 01 - JavaScript: IntroduçãoJessyka Lage
 
Aula 09 - Memórias do Computador
Aula 09 - Memórias do ComputadorAula 09 - Memórias do Computador
Aula 09 - Memórias do ComputadorSuzana Viana Mota
 
Exemplo De Um Bom Resumo
Exemplo De Um Bom ResumoExemplo De Um Bom Resumo
Exemplo De Um Bom ResumoProfmaria
 
Aula 5 - Redes de computadores
Aula 5 - Redes de computadoresAula 5 - Redes de computadores
Aula 5 - Redes de computadoresLucasMansueto
 
Ficheiros em C
Ficheiros em CFicheiros em C
Ficheiros em CBaguiasri
 
Dicas importantes para escrever resumo de trabalho
Dicas importantes para escrever resumo de trabalhoDicas importantes para escrever resumo de trabalho
Dicas importantes para escrever resumo de trabalhoCRIS TORRES
 
Segurança dos Sistemas Operativos
Segurança dos Sistemas OperativosSegurança dos Sistemas Operativos
Segurança dos Sistemas OperativosPedro Marmelo
 
História e Principios das tics
História e Principios das ticsHistória e Principios das tics
História e Principios das ticsjoaocarvalhoprof
 
Teste diagnostico tic 9 e
Teste diagnostico tic 9 eTeste diagnostico tic 9 e
Teste diagnostico tic 9 ePaulo Reis
 
Apresentação Final de Banco de Dados
Apresentação Final de Banco de DadosApresentação Final de Banco de Dados
Apresentação Final de Banco de Dadossamlobo
 
EDITORES DE TEXTO, PLANILHAS DE CÁLCULOS E EDITORES DE SLIDE  
EDITORES DE TEXTO, PLANILHAS DE CÁLCULOS E EDITORES DE SLIDE  EDITORES DE TEXTO, PLANILHAS DE CÁLCULOS E EDITORES DE SLIDE  
EDITORES DE TEXTO, PLANILHAS DE CÁLCULOS E EDITORES DE SLIDE  SousaLeitee
 
Estrutura de dados - Aula de Revisão (Linguagem C/C++, Função, Vetor, Matriz,...
Estrutura de dados - Aula de Revisão (Linguagem C/C++, Função, Vetor, Matriz,...Estrutura de dados - Aula de Revisão (Linguagem C/C++, Função, Vetor, Matriz,...
Estrutura de dados - Aula de Revisão (Linguagem C/C++, Função, Vetor, Matriz,...Leinylson Fontinele
 

Mais procurados (20)

Banco de dados exercícios resolvidos
Banco de dados exercícios resolvidosBanco de dados exercícios resolvidos
Banco de dados exercícios resolvidos
 
TIC - Conceitos Básicos
TIC - Conceitos BásicosTIC - Conceitos Básicos
TIC - Conceitos Básicos
 
A História e Evolução dos Computadores
A História e Evolução dos ComputadoresA História e Evolução dos Computadores
A História e Evolução dos Computadores
 
Programação avançada
Programação avançada Programação avançada
Programação avançada
 
Introdução a Linguagem de Programação C
Introdução a Linguagem de Programação CIntrodução a Linguagem de Programação C
Introdução a Linguagem de Programação C
 
Estrutura de Dados - Grafos
Estrutura de Dados - GrafosEstrutura de Dados - Grafos
Estrutura de Dados - Grafos
 
Aula 01 - JavaScript: Introdução
Aula 01 - JavaScript: IntroduçãoAula 01 - JavaScript: Introdução
Aula 01 - JavaScript: Introdução
 
Variáveis e portugol
Variáveis e portugolVariáveis e portugol
Variáveis e portugol
 
Aula 09 - Memórias do Computador
Aula 09 - Memórias do ComputadorAula 09 - Memórias do Computador
Aula 09 - Memórias do Computador
 
Introdução ao CSS
Introdução ao CSSIntrodução ao CSS
Introdução ao CSS
 
Exemplo De Um Bom Resumo
Exemplo De Um Bom ResumoExemplo De Um Bom Resumo
Exemplo De Um Bom Resumo
 
Aula 5 - Redes de computadores
Aula 5 - Redes de computadoresAula 5 - Redes de computadores
Aula 5 - Redes de computadores
 
Ficheiros em C
Ficheiros em CFicheiros em C
Ficheiros em C
 
Dicas importantes para escrever resumo de trabalho
Dicas importantes para escrever resumo de trabalhoDicas importantes para escrever resumo de trabalho
Dicas importantes para escrever resumo de trabalho
 
Segurança dos Sistemas Operativos
Segurança dos Sistemas OperativosSegurança dos Sistemas Operativos
Segurança dos Sistemas Operativos
 
História e Principios das tics
História e Principios das ticsHistória e Principios das tics
História e Principios das tics
 
Teste diagnostico tic 9 e
Teste diagnostico tic 9 eTeste diagnostico tic 9 e
Teste diagnostico tic 9 e
 
Apresentação Final de Banco de Dados
Apresentação Final de Banco de DadosApresentação Final de Banco de Dados
Apresentação Final de Banco de Dados
 
EDITORES DE TEXTO, PLANILHAS DE CÁLCULOS E EDITORES DE SLIDE  
EDITORES DE TEXTO, PLANILHAS DE CÁLCULOS E EDITORES DE SLIDE  EDITORES DE TEXTO, PLANILHAS DE CÁLCULOS E EDITORES DE SLIDE  
EDITORES DE TEXTO, PLANILHAS DE CÁLCULOS E EDITORES DE SLIDE  
 
Estrutura de dados - Aula de Revisão (Linguagem C/C++, Função, Vetor, Matriz,...
Estrutura de dados - Aula de Revisão (Linguagem C/C++, Função, Vetor, Matriz,...Estrutura de dados - Aula de Revisão (Linguagem C/C++, Função, Vetor, Matriz,...
Estrutura de dados - Aula de Revisão (Linguagem C/C++, Função, Vetor, Matriz,...
 

Destaque (7)

Conferencia con laminas: Reputacion & Marca personal en Redes Sociales
Conferencia con laminas: Reputacion & Marca personal en Redes SocialesConferencia con laminas: Reputacion & Marca personal en Redes Sociales
Conferencia con laminas: Reputacion & Marca personal en Redes Sociales
 
120 Oportunidades de Autoempleo
120 Oportunidades de Autoempleo120 Oportunidades de Autoempleo
120 Oportunidades de Autoempleo
 
Open Government
Open GovernmentOpen Government
Open Government
 
Cop’s dgtic oct 2009
Cop’s dgtic oct 2009Cop’s dgtic oct 2009
Cop’s dgtic oct 2009
 
Programa de entrenamiento 2011
Programa de entrenamiento 2011Programa de entrenamiento 2011
Programa de entrenamiento 2011
 
Los sistemas políticos de decisión y las TIC
Los sistemas políticos de decisión y las TICLos sistemas políticos de decisión y las TIC
Los sistemas políticos de decisión y las TIC
 
ACTIVE - LISTENING
ACTIVE - LISTENINGACTIVE - LISTENING
ACTIVE - LISTENING
 

Semelhante a Arquivos em C

Tutorial dev cpp 002 - criação, leitura e alteração de arquivos
Tutorial dev cpp   002 - criação, leitura e alteração de arquivosTutorial dev cpp   002 - criação, leitura e alteração de arquivos
Tutorial dev cpp 002 - criação, leitura e alteração de arquivosFlávio Freitas
 
Arquivos slides aula25
Arquivos slides aula25Arquivos slides aula25
Arquivos slides aula25AlanoG
 
Filestream sistema arquivos
Filestream  sistema arquivosFilestream  sistema arquivos
Filestream sistema arquivosTiago
 
Comandos básicos linux
Comandos básicos linuxComandos básicos linux
Comandos básicos linuxLuciano Souto
 
Capítulo 15 Livro Algoritmos e Programação de Computadores Autores JR., Diler...
Capítulo 15 Livro Algoritmos e Programação de Computadores Autores JR., Diler...Capítulo 15 Livro Algoritmos e Programação de Computadores Autores JR., Diler...
Capítulo 15 Livro Algoritmos e Programação de Computadores Autores JR., Diler...Os Fantasmas !
 
013 programando em python - arquivos
013   programando em python - arquivos013   programando em python - arquivos
013 programando em python - arquivosLeandro Barbosa
 
Laboratório de Programação I: Arquivos (texto) em disco
Laboratório de Programação I: Arquivos (texto) em discoLaboratório de Programação I: Arquivos (texto) em disco
Laboratório de Programação I: Arquivos (texto) em discoAlex Camargo
 
Programação Estruturada 2 - Aula 04
Programação Estruturada 2 - Aula 04Programação Estruturada 2 - Aula 04
Programação Estruturada 2 - Aula 04thomasdacosta
 
http://www.dm.ufscar.br/~waldeck/curso/java/
http://www.dm.ufscar.br/~waldeck/curso/java/http://www.dm.ufscar.br/~waldeck/curso/java/
http://www.dm.ufscar.br/~waldeck/curso/java/Rodrigo Vieira
 
http://www.dm.ufscar.br/~waldeck/curso/java/
http://www.dm.ufscar.br/~waldeck/curso/java/http://www.dm.ufscar.br/~waldeck/curso/java/
http://www.dm.ufscar.br/~waldeck/curso/java/Rodrigo Vieira
 
Programação Estruturada 2 - Aula 04 - Código Fonte
Programação Estruturada 2 - Aula 04 - Código FonteProgramação Estruturada 2 - Aula 04 - Código Fonte
Programação Estruturada 2 - Aula 04 - Código Fontethomasdacosta
 
Introduction to linux
Introduction to linuxIntroduction to linux
Introduction to linuxguilhermeoki
 

Semelhante a Arquivos em C (20)

Linguagem C 10 Arquivos
Linguagem C 10 ArquivosLinguagem C 10 Arquivos
Linguagem C 10 Arquivos
 
Java9
Java9Java9
Java9
 
Tutorial dev cpp 002 - criação, leitura e alteração de arquivos
Tutorial dev cpp   002 - criação, leitura e alteração de arquivosTutorial dev cpp   002 - criação, leitura e alteração de arquivos
Tutorial dev cpp 002 - criação, leitura e alteração de arquivos
 
Algoritmos - Aula 16 B - Arquivos
Algoritmos - Aula 16 B - ArquivosAlgoritmos - Aula 16 B - Arquivos
Algoritmos - Aula 16 B - Arquivos
 
Arquivos slides aula25
Arquivos slides aula25Arquivos slides aula25
Arquivos slides aula25
 
Estrutura de dados ii
Estrutura de dados iiEstrutura de dados ii
Estrutura de dados ii
 
Filestream sistema arquivos
Filestream  sistema arquivosFilestream  sistema arquivos
Filestream sistema arquivos
 
Comandos básicos linux
Comandos básicos linuxComandos básicos linux
Comandos básicos linux
 
Java streams
Java streamsJava streams
Java streams
 
Capítulo 15 Livro Algoritmos e Programação de Computadores Autores JR., Diler...
Capítulo 15 Livro Algoritmos e Programação de Computadores Autores JR., Diler...Capítulo 15 Livro Algoritmos e Programação de Computadores Autores JR., Diler...
Capítulo 15 Livro Algoritmos e Programação de Computadores Autores JR., Diler...
 
013 programando em python - arquivos
013   programando em python - arquivos013   programando em python - arquivos
013 programando em python - arquivos
 
Workshop Python.2
Workshop Python.2Workshop Python.2
Workshop Python.2
 
Laboratório de Programação I: Arquivos (texto) em disco
Laboratório de Programação I: Arquivos (texto) em discoLaboratório de Programação I: Arquivos (texto) em disco
Laboratório de Programação I: Arquivos (texto) em disco
 
Programação Estruturada 2 - Aula 04
Programação Estruturada 2 - Aula 04Programação Estruturada 2 - Aula 04
Programação Estruturada 2 - Aula 04
 
http://www.dm.ufscar.br/~waldeck/curso/java/
http://www.dm.ufscar.br/~waldeck/curso/java/http://www.dm.ufscar.br/~waldeck/curso/java/
http://www.dm.ufscar.br/~waldeck/curso/java/
 
http://www.dm.ufscar.br/~waldeck/curso/java/
http://www.dm.ufscar.br/~waldeck/curso/java/http://www.dm.ufscar.br/~waldeck/curso/java/
http://www.dm.ufscar.br/~waldeck/curso/java/
 
Programação Estruturada 2 - Aula 04 - Código Fonte
Programação Estruturada 2 - Aula 04 - Código FonteProgramação Estruturada 2 - Aula 04 - Código Fonte
Programação Estruturada 2 - Aula 04 - Código Fonte
 
Ativ complementar etapa 02
Ativ complementar etapa 02Ativ complementar etapa 02
Ativ complementar etapa 02
 
Introduction to linux
Introduction to linuxIntroduction to linux
Introduction to linux
 
Sgf
SgfSgf
Sgf
 

Arquivos em C

  • 1. Arquivos em C Geanderson Esteves Mestrando em Ciências da Computação Universidade Federal de Minas Gerais
  • 2. Conceitos Básicos Conjuntos de informações mantidas no disco (memória secundária) Informações são “persistidas” em comparação com a memória RAM (memória primária) Sistema Operacional (OS) faz um “buffer” das informações lidas/gravadas
  • 4. Conceitos Básicos Em C, arquivos podem ser gravados de duas maneiras: ● Modo texto (conjunto de caracteres) ○ Arquivo texto pode ser tratado por qualquer editor (e.g., bloco de notas, terminal, word, etc.) ● Modo binário (conjunto de bytes) ○ Ex: Grandes quantidades de informações de forma eficiente
  • 5. Operações Primordiais ● Abertura do arquivo (localização, alocação do buffer); ● Leitura do arquivo (informações do buffer são disponibilizadas); ● Gravação do arquivo (alteração de dados preexistentes ou acréscimo de novos dados); ● Fechamento do arquivo (atualização do buffer e liberação de memória alocada);
  • 6. Comandos Essenciais FILE *fp; FILE *fopen(char *nome_arquivo, char *modo_de_acesso); int fclose(FILE *fluxo);
  • 7. Possíveis modos de acesso modo_de_acesso Significado r Abre o arquivo somente para leitura. O arquivo deve existir. r+ Abre o arquivo para leitura e escrita. O arquivo deve existir. w Abre o arquivo somente para escrita no início do arquivo. Apagará o conteúdo do arquivo se ele já existir, criará um arquivo novo se ele não existir. w+ Abre o arquivo para escrita e leitura, apagando o conteúdo pré-existente. a Abre o arquivo para escrita no final do arquivo. Não apagará o conteúdo pré-existente. a+ Abre o arquivo para escrita no final do arquivo e leitura.
  • 8. Ex1. Testando criação de um arquivo #include <stdio.h> int main() { FILE *fp; fp = fopen ("README", "w"); if (fp == NULL) { printf ("Houve um erro ao abrir o arquivo.n"); return 1; } printf ("Arquivo README criado com sucesso.n"); fclose (fp); return 0; }
  • 9. Ex2. Lendo um arquivo #include <stdio.h> int main() { char c[41]; FILE *fp; fp = fopen("README", "r"); while(fgets(c, 40, fp) != NULL) puts(c); fclose(fp); return 0; }
  • 10. Ex3. Contando linhas de um arquivo #include <stdio.h> int main() { int c, nlinhas = 0; FILE *fp; fp = fopen("README", "r"); while((c=fgetc(fp))!=EOF) if(c=='n') nlinhas++; fclose(fp); printf("Numero de linhas = %dn", nlinhas); return 0; }
  • 11. Escrevendo em um arquivo void fputc(int caractere, FILE *fluxo) void fputs(char *string, FILE *fluxo) void fprintf(FILE *fluxo, char *formatação) int fwrite(void *dados, int tamanho_do_elemento, int num_elementos, FILE *fluxo)
  • 12. Escrevendo em um arquivo Saída padrão Arquivos Explicação putchar fputc Imprime apenas um caractere puts fputs Imprime uma string diretamente, sem nenhuma formatação printf fprintf Imprime uma string formatada N/A fwrite Grava dados binários em um arquivo
  • 13. Ex4. Escrevendo em um arquivo [1] #include <stdio.h> int main() { FILE *fp; fp = fopen ("README", "w"); fprintf(fp, "Salvando alguma coisa no meu arquivo...n"); fclose(fp); return 0; }
  • 14. Ex4. Escrevendo em um arquivo [2] #include <stdio.h> int main() { FILE *fp; char frase[] = "Universidade Federal de Minas Gerais"; fp = fopen("file", "w"); for(int i = 0; frase[i]!='0'; i++) fprintf(fp, "%c", frase[i]); return 0; }
  • 15. Arquivos binários Servem para salvar (recuperar) as informações tais como se encontram na memória principal Permite o manuseio de grandes quantidades de dados de forma mais eficiente (i.e., não sequencial) Um arquivo binário permite a busca por qualquer informação contida no arquivo (fseek)
  • 16. Arquivos binários int fread(void* p, int tam, int num, FILE *fp); int fwrite(void* p, int tam, int num, FILE *fp); int fseek(FILE *fp, long offset, int origem)
  • 17. Ex5. Escrevendo um arquivo binário #include <stdio.h> int main() { FILE *fp; fp=fopen("test.bin", "wb"); int x[5]= {1, 2, 3, 4, 5}; fwrite(x, sizeof(x[0]), sizeof(x)/sizeof(x[0]), fp); return 0; }
  • 18. Referências ● ZIVIANI, Nivio. Projeto de Algoritmos com Implementação em Pascal e C ● C Programming. http://www.cprogramming.com/tutorial/c-tutorial.html ● Tutorials Point. https://www.tutorialspoint.com/c_standard_library