Você está na página 1de 17

A R Q U I V O S

Monitoria - IP
O Q U E

É ?

Sequência de bytes

Coleção de dados armazenada na memória externa


O Q U E

É ?

Sequência de bytes

Coleção de dados armazenada na memória externa

HD, SSD
P O R Q U E

U S A R ?

Armazenamento Permanente:
Pode acessar mesmo depois que o programa termina

Acesso Concorrente:
Vários programas podem acessar ao mesmo tempo
A B I N D O U M

A R Q U I V O

int main ( ) {
FILE *arq;
arq = fopen("nome.tipo", "modo");

if(arq == NULL){
printf("Erro abrindo arq.");
exit(1);
}
// ...
}
A B I N D O U M

A R Q U I V O

FILE *arq; Cria um ponteiro do tipo FILE

Abre um arquivo específico no modo


fopen("nome.tipo", "modo");
selecionado

nome.tipo O tipo pode ser txt ou bin


MODOS
TXT r Abre um arquivo já existente apenas para leitura

r+ Abre um arquivo já existente para leitura e escrita

w Abre um arquivo já existente apenas para escrita

w+ Abre um arquivo já existente para leitura e escrita

Abre um arquivo já existente apenas para adicionar


a
dados

Abre um arquivo já existente para leitura e


a+
adicionar dados
MODOS
BIN rb Abre um arquivo já existente apenas para leitura

r+b Abre um arquivo já existente para leitura e escrita

wb Abre um arquivo já existente apenas para escrita

w+b Abre um arquivo já existente para leitura e escrita

Abre um arquivo já existente apenas para adicionar


ab
dados

Abre um arquivo já existente para leitura e


a+b
adicionar dados
R E G R A S

Arquivo não existe? Você cria → modo w, w+ ou a+

Arquivo já existe? → modo r, r+, a ou a+

Vai escrever o arquivo do ZERO? → modo w ou w+


F E C H A N D O U M
A R Q U I V O

int main ( ) {
//...
int a = fclose (arq);

if (a == EOF) {
printf("Erro fechando arq." );
exit(1);
}
return 0;
}
F U N Ç Õ E S

T X T

fscanf(arq, "%d %s", &num, nome);

fgets(string, strlen(string)+1, arq);

letra = fgetc( arq);


F U N Ç Õ E S

T X T
retorna EOF quando
fscanf(arq, "%d %s", &num, nome); o arquivo acaba

fgets(string, strlen(string)+1, arq);

letra = fgetc( arq);


F U N Ç Õ E S

T X T

fscanf(arq, "%d %s", &num, nome);

fgets(string, strlen(string)+1, arq);


lê até encontrar '\n'
ou fim do arquivo
letra = fgetc( arq);
F U N Ç Õ E S

T X T

fprintf(arq, "%d %s", num, nome);

fputs(string, arq);

fputc(letra, arq);
F U N Ç Õ E S

B I N

fread(nome, sizeof(char), strlen(nome), arq);

fwrite(&idade, sizeof(int), 1, arq);


F U N Ç Õ E S

Ú T E I S

remove ("nome");

rename("antigo", "novo");
Ajusta o ponteiro do
arquivo pulando
fseek( arq, num_bytes, inicio); num_bytes a partir do
início
F U N Ç Õ E S

Ú T E I S

fseek( arq, num_bytes, inicio);

SEEK_SET para início do arquivo

SEEK_CUR para posição atual do ponteiro

SEEK_END para fim do arquivo

Você também pode gostar