FILE *fopen(const char *nomeArquivo, const char *modoDeAbertura)

Recebe: um array de caracteres contendo o nome do arquivo e outro com o modo de abertura.

Retorna: o endereço de uma estrutura do tipo FILE usada pelo sistema para gerenciar o arquivo aberto. Em caso de falha na abertura, o valor NULL é retornado.

A função solicita ao sistema operacional o acesso a um determinado arquivo, usando os seguintes modos:

  • r: abertura com permissão exclusiva para leitura, com posição corrente ajustada para o início do arquivo;
  • r+: abertura com permissão para leitura e escrita, com posição corrente ajustada para o início do arquivo;
  • w: truncamento do arquivo para tamanho zero ou criação de um arquivo novo com permissão exclusiva para escrita e posição corrente ajustada para o início do arquivo;
  • w+: truncamento do arquivo para tamanho zero ou criação de um arquivo novo com permissão para escrita e leitura, com posição corrente ajustada para o início do arquivo;
  • a: abertura com permissão exclusiva para escrita, com ajuste da posição corrente para o final do arquivo; se o arquivo não existir ele é criado;
  • a: abertura com permissão para leitura e escrita, com ajuste da posição corrente para o final do arquivo; se o arquivo não existir ele é criado.

O modo pode conter também o caractere ‘b’, usado para compatibilidade com o padrão C89. Ele é ignorado em sistemas POSIX. Este caractere é usado para indicar que o arquivo é aberto no modo binário.

Exemplo de uso da função:
									
//EXEMPLO FOPEN()

#include <stdio.h>		
 
	int main(void)
	{
		char *nomeArquivo = "exemplo.dat";
		FILE *arquivo = fopen(nomeArquivo, "w");
	 
		if(arquivo == NULL)
			printf(“Falha\n”);
		else
			fclose(arquivo);
	 
		return 0;
	}
			
									
								
Saída do terminal:
									
			>clang-7 -pthread -lm -o main main.c
			>./main
			>ls
			exemplo.dat main main.c 
										
								

int fclose(FILE *arquivo)

Recebe: uma variável contendo o endereço de um descritor de arquivo.

Retorna: um valor do tipo int indicando se a operação foi bem sucedida, retornando 0 no caso de sucesso, ou EOF em caso de falha.

A função dispara as ações para o fechamento do arquivo, o que inclui qualquer escrita de dados ainda pendente, e libera o recurso usado no sistema operacional. O comportamento da função é indefinido caso o endereço passado não corresponda a um descritor de arquivo aberto ou válido. Em caso de falha, o valor de errno é usado para indicar o erro.

Exemplo de uso da função:

//EXEMPLO FCLOSE()

#include <stdio.h>		

int main(void)
{
    char *nomeArquivo = "exemplo.dat";
    FILE *arquivo = fopen(nomeArquivo, "w");
 
    fclose(arquivo);
 
    return 0;
}

											
Saída do terminal:
											
			>clang-7 -pthread -lm -o main main.c
			>./main
			>ls
			exemplo.dat main main.c
											
										

size_t fread(void *itemLer, size_t tamanhoDoItem, size_t quantidadeItem, FILE *arquivo)

Recebe: o endereço do local onde se irá armazenar o que for lido do arquivo, o tamanho, em bytes, de um item individual que será lido, a quantidade de itens que serão lidos e o arquivo endereço do descritor de arquivo.

Retorna: a quantidade de itens lidos na chamada da função.

A função tenta transferir quantidadeItem itens, cada um com tamanhoDoItem bytes para a memória iniciada no endereço itemLer. O valor retornado é a quantidade de itens lidos com sucesso, que pode ser inferior à solicitada.
Não é feito um tratamento de erros, de forma que as funções feof e ferror podem ser utilizadas para verificar a razão de eventuais falhas.

Exemplo de uso da função:
									
//EXEMPLO FREAD()

#include <stdio.h>	

int main(void)
{
    FILE *arquivo = fopen("exemplo.dat", "r");
 
    char copia[99];
 
    int itens_lidos = fread(copia, sizeof(char), 99, arquivo);
    
    printf("Foram lidos %d itens\n", itens_lidos);
    for(int i = 0; i < itens_lidos; i++)
        printf("%c", copia[i]);
    printf("\n");
 
    fclose(arquivo);
 
    return 0;
}
	
									
								
Saída do terminal:
									
			>clang-7 -pthread -lm -o main main.c
			>./main
			Foram lidos 14 itens
			Hello, World!

									
								

size_t fwrite(void *itemEscrita, size_t tamanhoDoItem,
size_t quantidadeItem, FILE *arquivo)

Recebe: a variável contendo o que será escrito no arquivo, o tamanho, em bytes do que será escrito, a quantidade de vezes que será escrito o item indicado, o arquivo no qual o objeto será escrito.

Retorna: a quantidade de itens escritos na chamada da função.

Exemplo de uso da função:
									
//EXEMPLO FWRITE()

#include <stdio.h>											
int main(void)
{
    FILE *arquivo = fopen("exemplo.dat", "w");
 
    char copia[99] = "Hello, World.\n\0";
 
    fwrite(copia, 99*sizeof(char), 1, arquivo);
 
    fclose(arquivo);
 
    return 0;
}
	
									
								
Saída do terminal:
									
			>clang-7 -pthread -lm -o main main.c
			>./main
			>cat exemplo.dat
			Hello, World.
									
								

int fseek(FILE *arquivo, long salto, int origemDoSalto)

Recebe: uma variável contendo um arquivo aberto, e a quantidade de posições que se deseja deslocar no arquivo.

Retorna: um inteiro diferente de zero caso tenha ocorrido algum erro na execução da função.

Exemplo de uso da função:
									
//EXEMPLO FSEEK()

#include <stdio.h>	
										
int main(void)
{
    FILE *arquivo = fopen("exemplo.dat", "r");
 
    char copia[99];
 
    fseek(arquivo, 0, SEEK_SET);
    fread(copia, 99*sizeof(char), 1, arquivo);
 
    printf("%s\n", copia);
 
    fclose(arquivo);
 
    return 0;
}

									
								
Saída do terminal:
									
			>clang-7 -pthread -lm -o main main.c
			>./main
			Hello, World.

			
      
									
								

long int ftell(FILE *arquivo)

Recebe: o arquivo do qual deseja-se saber em que posição ele está.

Retorna: o posicionamento para leitura e/ou escrita na qual o arquivo está no momento da chamada da função.

Exemplo de uso da função:
									
//EXEMPLO FTELL()

#include <stdio.h>											

int main(void)
{
    FILE *arquivo = fopen("exemplo.dat", "r");
 
    printf("%ld\n", ftell(arquivo));
 
    fclose(arquivo);
 
    return 0;
}

									
								
Saída do terminal:
									
			>clang-7 -pthread -lm -o main main.c
			>./main
			0

									
								

void rewind(FILE *arquivo)

Recebe: o arquivo para o qual deseja-se fazer o reposicionamento para o início.

Retorna: a função não tem retorno; void.

Exemplo de uso da função:
									
//EXEMPLO REWIND()

#include <stdio.h>											

int main(void)
{
    FILE *arquivo = fopen("exemplo.dat", "w+");
 
    char copia[99] = "Hello, World.";
 
    fwrite(copia, 99*sizeof(char), 1, arquivo);
    fwrite("Teste.", 8*sizeof(char), 1, arquivo);
 
    rewind(arquivo);
 
    char teste[99];
    fread(teste, 99*sizeof(char), 1, arquivo);
 
    printf("%s\n", teste);
 
    return 0;
}

									
								
Saída do terminal:
									
			>clang-7 -pthread -lm -o main main.c
			>./main
			Hello, World.
			>ls
			exemplo.dat main main.c
									
								

int fflush(FILE *stream)

Recebe: o arquivo para o qual deseja-se limpar o buffer de operações de leitura e escrita.

Retorna: um valor do tipo int indicando se a operação foi bem sucedida, retornando 0, ou não, retornando o valor numérico para EOF.

Exemplo de uso da função:
									
//EXEMPLO FFLUSH()

#include <stdio.h>

int main(void)
{
    char *nomeArquivo = "exemplo.dat";
    FILE *arquivo = fopen(nomeArquivo, "w");
 
    char textoQualquer[99] = "Teste do teste de testes.\n";
 
    fwrite(textoQualquer, 99*sizeof(char), 1, arquivo);
    fflush(arquivo);
 
    fclose(arquivo);
 
    return 0;
}

									
								
Saída do terminal:
									
			>clang-7 -pthread -lm -o main main.c
			>./main
			>ls
			exemplo.dat main main.c
			>cat exemplo.dat
			Teste do teste de testes.
									
								

int fprintf(FILE *stream, const char *stringParaEscrita,
(variáveis serão utilizadas, assim como em printf)
)

Recebe: o arquivo no qual deseja-se efetuar a escrita da string, a string a ser escrita, as variáveis referentes a formatação da string.

Retorna: o número de caracteres escrito, ou, caso a operação não seja bem sucedida, um valor negativo.

Exemplo de uso da função:
									
//EXEMPLO FPRINTF()

#include <stdio.h>	

int main(void)
{
    FILE *arquivo = fopen("exemplo.dat", "w");
 
    fprintf(arquivo, "%d é a resposta.\n", 42);
 
    fclose(arquivo);
 
    return 0;
}
									
								
Saída do terminal:
									
			>clang-7 -pthread -lm -o main main.c
			>./main
			>ls
			exemplo.dat main main.c
			>cat exemplo.dat
			42 é a resposta.

									
								

int fscanf(FILE *stream, const char *stringParaEscrita,
(variáveis que serão utilizadas na formatação)
)

Recebe: o arquivo a partir do qual deseja-se copiar o conteúdo para uma string, a string para a qual o conteúdo será escrito.

Retorna: EOF, caso tenha atingido o fim do arquivo, ou então retorna a quantidade de leituras realizadas.

Exemplo de uso da função:
									
//EXEMPLO FSCANF()

#include <stdio.h>											

int main(void)
{
    FILE *arquivo = fopen("exemplo.dat", "w+");
 
    char fraseQualquer[99];
    fprintf(arquivo, "Este não é um teste.\n");
    fprintf(arquivo, "Este é O Teste.\n");
 
    rewind(arquivo);
 
    while (fscanf(arquivo, "%s", fraseQualquer) != EOF)
        printf("%s ", fraseQualquer);
 
    putchar('\n');
 
    fclose(arquivo);
 
    return 0;
}

									
								
Saída do terminal:
									
			>clang-7 -pthread -lm -o main main.c
			>./main
			>ls
			exemplo.dat main main.c
			>cat exemplo.dat
			Este não é um teste.
			Este é O Teste.
									
								

int feof(FILE *arquivo)

Recebe: o arquivo para o qual deseja-se saber se o seu final foi alcançado.

Retorna: um inteiro diferente de zero caso o programa tenha chegado ao fim do arquivo.

Exemplo de uso da função:
									
//EXEMPLO FEOF()

#include <stdio.h>											
 
int main(void)
{
    FILE *arquivo = fopen("exemplo.dat", "r");
 
    printf("%d\n", feof(arquivo));
 
    fclose(arquivo);
 
    return 0;
}

									
								
Saída do terminal:
									
			>clang-7 -pthread -lm -o main main.c
			>./main
			0
									
								

int remove(const char *nomeArquivo)

Recebe:uma string contendo o nome do arquivo que se deseja remover.

Retorna:um valor do tipo int indicando se a operação foi bem sucedida, retornando 0, ou não, retornando um inteiro diferente de 0.

Exemplo de uso da função:
									
//EXEMPLO REMOVE()

#include <stdio.h>											

int main(void)
{
    remove("exemplo2.dat");
 
    return 0;
}

									
								
Saída do terminal:
									
			>clang-7 -pthread -lm -o main main.c
			>ls
			exemplo2.dat main main.c
			>./main
			>ls
			main main.c
									
								

int rename(const char *nomeArquivo, const char *renomearArquivo)

Recebe: uma string com o nome do arquivo que será renomeado, uma string contendo o novo nome do arquivo.

Retorna: um valor do tipo int indicando se a operação foi bem sucedida, retornando 0, ou não, retornando um inteiro diferente de 0.

Exemplo de uso da função:
									
//EXEMPLO RENAME()

#include <stdio.h>		

int main(void)
{
    rename("exemplo.dat", "exemplo2.dat");
 
    return 0;
}

									
								
Saída do terminal:
									
			>clang-7 -pthread -lm -o main main.c
			>ls
			exemplo.dat main main.c
			>./main
			>ls
			exemplo2.dat main main.c
									
								

int printf(const char *stringParaEscrita,
(variáveis que serão utilizadas na formatação))

Recebe: a string que será impressa na saída padrão, as variáveis indicadas na string para devida formatação.

Retorna: o número de caracteres escritos, ou, caso a operação não tenha sido bem sucedida, um valor negativo.

Exemplo de uso da função:
									
//EXEMPLO printf()

#include <stdio.h>											

int main(void)
{
    printf("%d é a resposta.\n", 42);
 
    return 0;
}

									
								
Saída do terminal:
									
			>clang-7 -pthread -lm -o main main.c
			>./main
			42 é a resposta.
									
								

int scanf(const char *stringDeLeitura,
(variáveis que receberão os valores indicados na entrada padrão))

Recebe: string indicando quais os tipos das variáveis que receberão os valores indicados na entrada padrão, as variáveis que tiveram seus tipos indicadas na string.

Retorna: EOF, caso tenha atingido o fim do arquivo, ou então retorna a quantidade de leituras realizadas.

Exemplo de uso da função:
									
//EXEMPLO SCANF()

#include <stdio.h>	

int main(void)
{
    int numeros[7];
 
    for (int i = 0; i < 7; i++)
        scanf("%d", numeros + i);
 
    putchar('{');
    for (int i = 0; i < 7; i++)
        printf("%d, ", numeros[i]);
    printf("...}\n");
 
    return 0;
}

									
								
Saída do terminal:
									
			>clang-7 -pthread -lm -o main main.c
			>./main
			1
			2
			3
			4
			5
			6
			7
			{1, 2, 3, 4, 5, 6, 7, ...}
									
								

int getc(FILE *stream)

Recebe: a stream a partir da qual o próximo caractere será lido.

Retorna: o próximo caractere presente na stream indicada.

Exemplo de uso da função:
									
//EXEMPLO GETC()

#include <stdio.h>	

int main(void)
{
    FILE *arquivo = fopen("exemplo.dat", "w+");
 
    fprintf(arquivo, "%d é a resposta.\n", 42);
 
    rewind(arquivo);
 
    char c;
 
    while ((c = getc(arquivo)) != EOF)
        putchar(c);
 
    fclose(arquivo);
 
    return 0;
}

									
								
Saída do terminal:
									
			>clang-7 -pthread -lm -o main main.c
			>./main
			42 é a resposta.
									
								

char *gets(FILE *stream)

Recebe: a stream a partir da qual a próxima linha contendo uma string será lida.

Retorna: a string lida na chamada da função ou NULL, em caso de erro.

Exemplo de uso da função:
									
//EXEMPLO GETS()

#include <stdio.h>											

int main(void)
{
    char texto[99];
 
    gets(texto);
 
    printf("%s\n", texto);
 
    return 0;
}

									
								
Saída do terminal:
									
			>clang-7 -pthread -lm -o main main.c
			>./main
			O teste dos testes de casos teste.
			O teste dos testes de casos teste.
									
								

int getchar()

Recebe: não recebe parâmetros; void.

Retorna: o próximo caractere presente na entrada padrão.

Exemplo de uso da função:
									
//EXEMPLO GETCHAR()

#include <stdio.h>											

int main(void)
{
    char c, frase[99];
    int i = 0;
 
    while ((c = getchar()) != EOF)
        frase[i++] = c;
 
    printf("%s", frase);
 
    return 0;
}

									
								
Saída do terminal:
									
			>clang-7 -pthread -lm -o main main.c
			>./main
			O teste do teste de todos os testes
			Fim.
			O teste do teste de todos os testes
			Fim.

									
								

int putchar(int caractere)

Recebe: um caractere.

Retorna: o caractere escrito na saída padrão.

Exemplo de uso da função:
									
//EXEMPLO PUTCHAR()

#include <stdio.h>											

int main(void)
{
    putchar(';');
    putchar('\n');
 
    return 0;
}

								
								
Saída do terminal:
									
			>clang-7 -pthread -lm -o main main.c
			>./main
			;