Descrição:

No cabeçalho <stdio.h> estão localizadas as funções referentes às operações nas quais os mecanismos operam em função da entrada e da saída padrão, bem como em arquivos também. Portanto, por meio das variáveis, macros, e funções é possível realizar tarefas de leitura e escrita, tanto por meio da entrada e saída disponibilizada pela máquina, quanto por escrita e leitura em arquivos.

Tipos:

FILE: estrutura que apresenta os atributos necessários para se operar com arquivos.

fpos_t: tipo inteiro positivo destinado a armazenar a posição corrente em um arquivo.

size_t: tipo inteiro positivo destinado a guardar o tamanho que um objeto ocupa na memória.

Macros:

NULL: valor que indica que algo não existe; usualmente é o valor zero.

_IOFBF,
_IOLBF,
_IONBF: ver a funçãosetvbuf().

BUFSIZE: ver a funçãosetbuf().

EOF: valor retornado quando uma função de operação (ver getchar e fscanf, por exemplo) de arquivos tenta fazer uma leitura depois do fim do arquivo; utiliza um valor inteiro negativo. FOPEN_MAX: quantidade máxima de arquivos que podem ser abertos, simultaneamente, durante a execução do programa.

FILENAME_MAX: tamanho máximo que uma string indicando o nome de um arquivo a ser aberto pode ter . L_tmpnam: tamanho que um array de caracteres precisa ter a fim de que a função tmpnam() possa ser usada de forma apropriada com esse array.

SEEK_CUR,
SEEK_END,
SEEK_SET: ver a funçãofseek().

TMP_MAX: ver a funçãotmpnam().

stderr,
stdin,
stdout: designam os ponteiros que apontam para as streams padrão de erro, entrada e saída, respectivamente.

Funções:

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

RETORNA: o endereço no qual o arquivo foi aberto, o tipo de dados utilizado é o tipo FILE.
RECEBE: um array de caracteres contendo o nome do arquivo e outro com o modo de abertura.

int fclose(FILE *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.
RECEBE: uma variável contendo o endereço de um descritor de arquivo.

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

RETORNA: a quantidade de itens lidos na chamada da função.
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.

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

RETORNA: a quantidade de itens escritos na chamada da função.
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.

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

RETORNA: um inteiro diferente de zero caso tenha ocorrido algum erro na execução da função.
RECEBE: uma variável contendo um arquivo aberto, e a quantidade de posições que se deseja deslocar no arquivo.

long int ftell(FILE *arquivo)

RETORNA: o posicionamento para leitura e/ou escrita na qual o arquivo está no momento da chamada da função.
RECEBE: o arquivo do qual deseja-se saber em que posição ele está.

void rewind(FILE *arquivo)

RETORNA: a função não tem retorno; void.
RECEBE: o arquivo para o qual deseja-se fazer o reposicionamento para o início.

int fflush(FILE *stream)

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.
RECEBE: o arquivo para o qual deseja-se limpar o buffer de operações de leitura e escrita.

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

RETORNA: o número de caracteres escrito, ou, caso a operação não seja bem sucedida, um valor negativo.
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.

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

RETORNA: EOF, caso tenha atingido o fim do arquivo, ou então retorna a quantidade de leituras realizadas.
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.

int feof(FILE *arquivo)

RETORNA: um inteiro diferente de zero caso o programa tenha chegado ao fim do arquivo.
RECEBE: o arquivo para o qual deseja-se saber se o seu final foi alcançado.

int remove(const char *nomeArquivo)

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.
RECEBE: uma string contendo o nome do arquivo que se deseja remover.

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

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.
RECEBE: uma string com o nome do arquivo que será renomeado, uma string contendo o novo nome do arquivo.

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

RETORNA: o número de caracteres escritos, ou, caso a operação não tenha sido bem sucedida, um valor negativo.
RECEBE: a string que será impressa na saída padrão, as variáveis indicadas na string para devida formatação.

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

RETORNA: EOF, caso tenha atingido o fim do arquivo, ou então retorna a quantidade de leituras realizadas.
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.

int getc(FILE *stream)

RETORNA: o próximo caractere presente na stream indicada.
RECEBE: a stream a partir da qual o próximo caractere será lido.

char *gets(FILE *stream)

RETORNA: a string lida na chamada da função ou NULL, em caso de erro.
RECEBE: a stream a partir da qual a próxima linha contendo uma string será lida.

int getchar()

RETORNA: o próximo caractere presente na entrada padrão.
RECEBE: não recebe parâmetros; void.

int putchar(int caractere);

RETORNA: o caractere escrito na saída padrão.
RECEBE: um caractere.