codice:
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
codice:
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;