PDA

View Full Version : [C] problemi con creazione file


noodles83
05-06-2009, 10:27
In un programma concorrente un thread deve creare un file in una directory creata dal thread padre(main).

Per creare il file utilizzo la fopen(), che ritorna regolarmente un FILE* non NULL, quindi l'apertura ha avuto esito positivo. Andando però a vedere effettivamente nella directory, non c'è nessun file e non capisco perchè, eppure il path che gli passo è giusto. Ho provato anche con la open() stessa identica cosa... vi incollo il pezzo di codice incriminato.

{
/*creo il file aprendolo in scrittura e richiudendolo subito*/
sprintf(path,"./%s/%s.dat",str->dir_name,agenda);
temp=fopen(path, "w");
if(temp==NULL){
perror("Errore: thread dserver/fopen");
exit(EXIT_FAILURE);
}
fclose(temp);
registraAgenda(agenda); /*registro l'agenda nell'array agende, nella prima posizione libera*/
i++;

/*costruisco il msg di ok e lo invio al client*/
msgClient->type=MSG_OK;
msgClient->length=0;
if(sendMessage(str->ch,msgClient)==-1){
perror("Errore: thread dserver/sendMessage");
exit(EXIT_FAILURE);
}

}

il programma scorre e non ritorna nessun errore, ma non capisco perchè non venga creato il file fisicamente. Cosa strana... se dalla sprintf levo il ".dat" lo crea. Pensare che invece ieri ha fatto il contrario, me lo creava solo se mettevo ".dat". Ci sto impazzendo.