Sim é possível, eu colocaria o numero de bytes que tem a estrutura caso seja no modo binário, mas existe a função fwrite que grava bytes em um arquivo binário. unsigned fwrite(void *buffer, int num_bytes, int count, FILE *fp); onde buffer é um ponteiro para a variavel que se deseja ler, num_bytes é o numeros de bytes que se deseja gravar count quantos items do tipo buffer se deseja gravar, fp o arquivo que vai ser gravado. por exemplo você quer gravar um int fwrite(&i, sizeof(int), 1, fp);// grava um int no arquivo passado lembrando que o arquivo esteja aberto em modo binario ai você quer fazer uma função que recebe um ponteiro para sua estrutura e outro para o arquivo. Abre o arquivo com fopen modo binario escrita E grave a estrutura usando fwrite meu protótipo é esse, lembrando que estou sem o compilador void GravaArquivos(void *str, FILE *fp, int num_bytes, const char *arq) //str declarado como void para receber qualquer tipo de dados. implemente-a. Certo mas pelo fato de declarar como "void *str" não vai ser necessário fazer um cast dentro da função de gravação em algum momento?