[RESOLVIDO] fread - arquivo [Linguagem C]

tenho a variavel global

durante o programa eu altero o valor dela e cada vez q altero salvo em arquivo denovo, mas nem cheguei a chamar a função durante execução, estou testando somente abrindo e fechando por enquanto

o problema esta na minha função de ler ou salvar em arquivo, n sei aond, ja revisei um monte de vez e n achei
eu faço o seguinte, qd eu abro o programa ele chama o LoadFile abaixo

void LF_QtdProfessores(char FileName[]){ FILE *arquivo; arquivo = fopen (FileName, "rb"); if (arquivo == NULL) { printf (" Arquivo 'Numero_Professores.dat' nao existe. Criando arquivo...\n"); SF_QtdProfessores(FN_QtdProfessores); //chama StoreFile para criar o arquivo e salvar caso n tenha } else{ if(fread(&qtdProfessores,sizeof(qtdProfessores),1,arquivo) != 1) printf(" Erro de leitura em 'Numero_Professores.dat'.\n"); else printf (" Dados lidos com sucesso de 'Numero_Professores.dat'.\n"); } fclose(arquivo); }
ae se não tem o arquivo ele cria chamando o StoreFile

void SF_QtdProfessores(char FileName[]){ FILE *arquivo; arquivo = fopen (FileName, "wb"); if (arquivo == NULL) { printf (" Nao existe a pasta 'Professores'. Criando pasta...\n"); system("mkdir Professores"); SF_QtdProfessores(FileName); //Rechama a função para criar o arquivo, pq n proxima entra no else } else{ if(fwrite(&qtdProfessores,sizeof(qtdProfessores),1,arquivo) != 1){ printf(" Erro de escrita em 'Numero_Professores.dat'.\n"); } else printf (" Dados guardados com sucesso em 'Numero_Professores.dat'.\n"); } fclose(arquivo); }
na primeira vez q executo qd o arquivo ainda n existe ele cria a variavel e td mais inicializada em 0
ae qd eu abro e fecho o programa (o arquivo ja existe dai), ele da load no arquivo mas me retorna a variavel qtdProfessores com um valor inteiro aleatorio
n sei porque faz isso, preciso de ajuda

Obs.: ele sempre imprime a mensagem Erro de leitura em ‘Numero_Professores.dat’.
ja verifiquei se era o FileName que estava mandando, mas n eh, eu mando a mesma variavel de FileName para o StoreFile e para o LoadFile

[color=red]@edit[/color]
mudei o programa, coloquei todas as variaveis de tamanho num vetor e salvei o vetor e fiz uma função só, n sei oq mudei, mas deu certo