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