Il tuo codice (questo quotato), controlla soltanto se è possiileOriginariamente inviato da Habdul
codice:if((log=fopen("log.txt","a")) == NULL){ printf("Impossibile creare il file di log\n"); getchar(); exit(1); }
Trovi che dovrebbe creare il file nella directory dove si trova l'exe???
Come mai fa così???
creare il file (se possibile lo crea), altrimenti invia a video un messaggio di errore ed esce dal programma.
Il codice che ti ho postato sopra fa esattamente quello che hai chiesto.
alla posizione "0" della variabile "speciale" *argv[]
è presente il patch assoluto all'eseguibile che stai eseguendo.
Quindi, per creare un file nella directory in cui si trova l'eseguibile, basta modificare la stringa presente in *argv[0]
sostituendo il nome dell'eseguibile .exe
con il nome del file da creare, il gioco è fatto.
per fare un test, prova a mettere delle printf() prima e dopo la routine... così visualizzi a video la striga presente in *argv[0]
prima e dopo la modifica... tale stringa verrà successivamente
passata a fopen() per creare il file nella stessa directory dell'eseguibile.