Ciao a tutti ragazzi, volevo esporvi un problema molto strano..
La mia intenzione stamattina era quella di creare un programma che va a leggere un intero su file, lo incrementa di 1 e sovrascrive il nuovo valore al vecchio. tutto questo ogni qual volta viene acceso o riavviato il computer. Quindi un programma che tiene conto di quante volte viene avviato il computer.. fin qui tutto ok, anche perchè l'ho azzeccato alla prima botta, il programma se lo faccio partire io, funziona: mi individua il file, legge l'intero, lo incrementa, sovrascrive, e termina.
Dopo di che contento vado sul registro di sistema di windows, individuo la chiave dove risiede la lista dei programmi che il sistema esegue all'avvio del computer e ci inserisco anche il riferimento al mio programmino cosi che windows possa eseguirlo in automatico quando si avvia il computer. e qui viene il problema: in questo modo appena windows si avvia e parte l'esecuzione del mio programma, fallisce l'apertura del file dove risiede l'intero da leggere. e quindi non funziona. cosa molto curiosa perchè se lo avvio io manualmente va alla grande! quale è il problema secondo voi? praticamente è come se il programma fosse incapace di gestire i file se avviato da windows...
#include "stdio.h"
int main () {
FILE *pf=NULL;
FILE *pf2=NULL;
int numAvvio=0;
pf= fopen("log.txt", "r");
if (pf==NULL) { printf("impossibile aprire il file\n"); return 0; }
fscanf(pf, "%d", &numAvvio);
fclose(pf);
numAvvio++;
pf2= fopen("log.txt", "w");
if (pf2==NULL) { printf("impossibile aprire il file2\n"); return 0; }
fprintf(pf,"%d", numAvvio);
fclose(pf);
return 0;
}