Problema veramente curioso sui file..

di il
6 risposte

Problema veramente curioso sui file..

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;
}

6 Risposte

  • Re: Problema veramente curioso sui file..

    Non è che il PATH è diverso?!?

    Saluti,
    Max
  • Re: Problema veramente curioso sui file..

    Provato a metterlo in esecuzione automatica?
  • Re: Problema veramente curioso sui file..

    In esecuzione automatica funziona! l'ho messo in start-programmi-esecuzione automatica ed appena si accende windows il programma fa quello che deve fare senza errori.
    chissà perchè facendolo partire con il metodo del registro di sistema dice che non trova il file di testo.. forse dovrei specificare nel codice in C il percorso del il file di testo?. per PATH intendi questo Ixamit?
  • Re: Problema veramente curioso sui file..

    Si, esatto
  • Re: Problema veramente curioso sui file..

    Se gli indico il path funziona anche col metodo del registro di windows grazie
  • Re: Problema veramente curioso sui file..

    Prego.
    Comunque è sempre buona norma includere il percorso completo sul file da trattare.
    Questo perchè se faccio partire l'eseguibile da un'altra directory il programma userà la directory corrente e non la directory dell'eseguibile.

    Saluti,
    Max
Devi accedere o registrarti per scrivere nel forum
6 risposte