para escrita, como no modo "w" anterior, so que o arquivo ebinario."ab" Acrescenta dados binarios no fim do arquivo, como no modo "a" anterior, so que o76arquivo e binario."r+"Abre um arquivo texto para leitura e gravacao. O arquivo deve existir e pode sermodificado."w+"Cria um arquivo texto para leitura e gravacao. Se o arquivo existir, o conteudoanterior sera destruido. Se nao existir, sera criado."a+"Abre um arquivo texto para gravacao e leitura. Os dados serao adicionados no fim doarquivo se ele ja existir, ou um novo arquivo sera criado, no caso de arquivo naoexistente anteriormente."r+b"Abre um arquivo binario para leitura e escrita. O mesmo que "r+" acima, so que oarquivo e binario."w+b"Cria um arquivo binario para leitura e escrita. O mesmo que "w+" acima, so que oarquivo e binario."a+b"Acrescenta dados ou cria uma arquivo binario para leitura e escrita. O mesmo que"a+" acima, so que o arquivo e binarioPoderiamos entao, para abrir um arquivo binario para escrita, escrever:FILE *fp; /* Declaracao da estruturafp=fopen ("exemplo.bin","wb"); /* o arquivo se chama exemplo.bin e esta localizado nodiretorio corrente */if (!fp)printf ("Erro na abertura do arquivo.");A condicao !fp testa se o arquivo foi aberto com sucesso porque no caso de um erro afuncao fopen() retorna um ponteiro nullo (NULL).Uma vez aberto um arquivo, vamos poder ler ou escrever nele utilizando as funcoes queserao apresentadas nas proximas paginas.Toda vez que estamos trabalhando com arquivos, ha uma especie de posicao atual noarquivo. Esta e a posicao de onde sera lido ou escrito o proximo caractere. Normalmente, numacesso sequencial a um arquivo, nao temos que mexer nesta posicao pois quando lemos umcaractere a posicao no arquivo e automaticamente atualizada. Num acesso randomico teremosque mexer nesta posicao (ver fseek()).exitAqui abrimos um parenteses para explicar a funcao exit() cujo prototipo e:void exit (int codigo_de_retorno);Para utiliza-la deve-se colocar um include para o arquivo de cabecalho stdlib.h. Estafuncao aborta a execucao do programa. Pode ser chamada de qualquer ponto no programa efaz com que o programa termine e retorne, para o sistema operacional, o codigo_de_retorno. Aconvencao mais usada e que um programa retorne zero no caso de um termino normal eretorne um numero nao nulo no caso de ter ocorrido um problema. A funcao exit() se tornaimportante em casos como alocacao dinamica e abertura de arquivos pois nestes casos, se oprograma nao conseguir a memoria necessaria ou abrir o arquivo, a melhor saida pode serterminar a execucao do programa. Poderiamos reescrever o exemplo da secao anterior usandoagora o exit() para garantir que o programa nao deixara de abrir o arquivo:#include <stdio.h>#include <stdlib.h> /* Para a funcao exit() */main (void){FILE *fp;77...fp=fopen ("exemplo.bin","wb");if (!fp){printf ("Erro na abertura do arquivo. Fim de programa.");exit (1);}...return 0;}fcloseQuando acabamos de usar um arquivo que abrimos, devemos fecha-lo. Para tanto usa-sea funcao fclose():int fclose (FILE *fp);O ponteiro fp passado a funcao fclose() determina o arquivo a ser fechado. A funcaoretorna zero no caso de sucesso.Fechar um arquivo faz com que qualquer caracter que tenha permanecido no "buffer"associado ao fluxo de saida seja gravado. Mas, o que e este "buffer"? Quando voce enviacaracteres para serem gravados em um arquivo, estes caracteres sao armazenadostemporariamente