#include<stdio.h>
#include<stdlib.h>

// Compilar:
// gcc cont_carac.c -o cont_carac


#define TAM_buffer 2048

// =======================================
int main(int argc, char *argv[]){
 FILE *arq;
 char buffer[TAM_buffer];
 char carac=0;
 unsigned int b_lidos=0;
 unsigned int num_caracs=0;
 unsigned int cont1=0;
 
 
 if(argc != 3){
  printf("Entre com o arquivo e o caracter a procurar\n");
  printf("Exemplo:\n ./cont_carac teste.txt ';'\n\n");
  return 1;
 }
 
 if(!(arq=fopen(argv[1], "rb"))){
  printf("Arquivo nao encontrado\n");
  return 1;
 }
 carac=argv[2][0];
 
 while(!feof(arq)){
  b_lidos=fread(buffer, 1, TAM_buffer, arq);
  for(cont1=0; cont1<b_lidos; cont1++)if(buffer[cont1] == carac)num_caracs++;
 }
 
 fclose(arq);
 
 printf("Numero de caracteres: %u\n", num_caracs);
 return 0;
}
