Vi scrivo il codice

queste sono tre funzioni che ho definito

int apriFile1() //apertura del file nn ordinato
{
int ds_file;

ds_file = open(FILE_REC, O_CREAT|O_RDWR|O_APPEND, 0660);
if(ds_file == -1)
{
printf("Errore nell'apertura del file\n");
return -1;
}

return ds_file;
}

char *allocaStringa() {
char *vector;

vector = (char*) malloc(BUF_SIZE*sizeof(char));
memset(vector,0,BUF_SIZE*sizeof(char));

return vector;
}

char *leggiStringa(int ds_file) { // legge una stringa da file e la memorizza in un puntatore di char

int result;
char *stringa = allocaStringa();
char *stringa2 = allocaStringa();

while(*stringa2 != '\n') {
memset(stringa2,0,BUF_SIZE*sizeof(char));
result = read(ds_file,stringa2,sizeof(char));

if(result == -1) {
printf("Errore nella chiamata read\n");
}

strcat(stringa,stringa2);
}

free(stringa2);

return stringa;


e questo è il main di prova che ho fatto

main() {
int ds_file;
char *s1,*s2;

ds_file = apriFile1();

s1 = leggiStringa(ds_file);

for(; *s1 != '\0';s1++)
printf("%c",*s1);

s2 = leggiStringa(ds_file);

for(; *s2 !='\0';s2++)
printf("%c",*s2);

close(ds_file);
return 0;

nel file di testo che ho creato c'è scritto

Gianni
Luigi

legge e stampa Gianni, ma quando tenta di leggere Luigi va in loop...

aiutatemi vi prego nn riesco a capire il motivo...

un grazie anticipato a tutti


p.s non posso utilizzare le funzioni come fopen o fscanf ecc...x vincoli accademici