Olá!   Estou tentando criar um programa em C que a partir de um arquivo bolsista1.cad gere um versão randômica dele usando como "critério de organização" o código do bolsista -1(para ocupar a posição 0 do arquivo). Todavia, o código que elaborei não está funcionando e não estou conseguindo resolver o problema.  Por favor, ajudem-me a corrigir o problema desse código. Segue-o abaixo.  Muito obrigado!  Eduardo F. de Conto.   P.S: Estou usando o compilador DEV-C++.           struct data
{
       int codigo;
       char nome[TEXTO];
       int tipo_bolsa;
       char email [TEXTO];
};
struct modif
{
       int codigo;
       char nome[TEXTO];
       int tipo_bolsa;
       char email [TEXTO];
       int mes_venc;
       int ano_venc;
};
  
void Conv_Randomica (FILE *, FILE *, struct data *, struct modif *, int);
void Listagem1 (FILE *, struct data);
void Listagem2 (FILE *, struct modif);
int main()
{
    struct data buffer;
    struct modif buffer2;
    
    if((arq = fopen("bolsista1.dat", "rb"))==NULL){
      printf("Erro ao abrir o arquivo bolsista1.dat.\n");
      system("PAUSE");
    }
      
    if (!(arq2 = fopen("bolsista2.dat", "wb"))){
       printf("Erro ao criar o arquivo bolsista2.dat.\n");
       system("PAUSE");
    }
     
      else{
       Listagem1(arq, buffer);
       rewind(arq); 
       Conv_Randomica(arq, arq2, &buffer, &buffer2, COD);
       rewind(arq2);
       Listagem2(arq2, buffer2);
      
       fclose(arq2);
       system("PAUSE");
       return 0;
      }
       
      
}
void Conv_Randomica (FILE *arq, FILE *arq2, struct data *buffer, struct modif *buffer2, int cod)
{ 
    int i;
     
    if((arq = fopen("bolsista1.dat", "rb+"))==NULL){
      printf("Erro ao abrir o arquivo bolsista1.dat.\n");
      system("PAUSE");
    }
    
    for(i=1; i < cod; i++){
     while (fread(buffer, sizeof(struct data), 1, arq)){  
         printf("pos:%d", ftell(arq));
         if(buffer -> codigo == i){
            buffer2 -> codigo = buffer ->codigo;
            (buffer2 -> codigo)--;
            strcpy(buffer2 ->nome, buffer -> nome);
            buffer2 -> tipo_bolsa = buffer->tipo_bolsa;
            strcpy(buffer2 -> email, buffer-> email);
            buffer2 -> mes_venc = buffer2 -> ano_venc = 0; 
            fwrite (buffer2, sizeof(buffer2), 1, arq2); 
         } 
      
      }
    }
       
}