| Precedente :: Successivo | 
	
	
		| Autore | Messaggio | 
	
		| saetta Eroe in grazia degli dei
 
  
 
 Registrato: 25/02/08 11:52
 Messaggi: 129
 
 
 | 
			
				|  Inviato: 09 Set 2008 19:22    Oggetto: "run" di eclipse VS. "run" di DDD |   |  
				| 
 |  
				| sempre dietro al programmino che sto facendo (v. "analizzare file di testo in c") mi chiedevo come sia possibile che se eseguo il main() dal "run" di eclipse l'uscita è regolare e l'allocazione della memoria per una struct avvenga con successo(ho fatto una stampa del valore di fopen()) mentre con il run del debugger l'allocazione non ha succcesso e non riesce ad aprire un file(di configurazione) che invece eclipse apre tranquillamente. Tale file è nella cartella coi sorgenti e viene richiamato per nome da fopen(). 
 Che sbaglio?
 Grazie.
 |  | 
	
		| Top |  | 
	
		|  | 
	
		| freemind Supervisor sezione Programmazione
 
  
  
 Registrato: 04/04/07 21:28
 Messaggi: 4643
 Residenza: Internet
 
 | 
			
				|  Inviato: 09 Set 2008 23:18    Oggetto: |   |  
				| 
 |  
				| Mah, è strano. Non è che durante il debug setti qualche variabile che ti incasina il tutto?
 
 Fammi capire: se tu esegui con il run del codice tipo:
 
  	  | Codice: |  	  | ...
 FILE *ptr;
 if ((ptr=fopen("/home/documenti/pippo.txt","r"))==NULL)
 {
 puts("Errore di lettura!");
 }
 ...
 fclose(ptr);
 
 | 
 funziona ma con il debug no?
 |  | 
	
		| Top |  | 
	
		|  | 
	
		| saetta Eroe in grazia degli dei
 
  
 
 Registrato: 25/02/08 11:52
 Messaggi: 129
 
 
 | 
			
				|  Inviato: 10 Set 2008 08:37    Oggetto: |   |  
				| 
 |  
				| MMM... non è che è necessario metterci il path nella stringa del nome del file per fopen() ??? Non ho settato variabili... non so a cosa ti riferisci di preciso.
 
 Io ho messo semplicemente
 in NEW_GAME(...):
 
  	  | Codice: |  	  | game_t *new_game(char *file_config, char *file_log)
 {
 game_t *new_g;
 FILE *f_conf;
 FILE *f_log;
 
 f_log = fopen(file_log,"a");
 f_conf = fopen(file_config,"r");
 ........}
 
 | 
 
 in MAIN:
 
  	  | Codice: |  	  | ...
 ogame = new_game("conf.txt","log.txt"); <<-------- senza path
 ...
 
 | 
 magari eclipse lo vede perchè tale file è nella cartella coi sorgenti ed è associato al progetto e invece il ddd non lo vede??? (anche se dovrebbe risolvere il nome, comunque!!!)
 |  | 
	
		| Top |  | 
	
		|  | 
	
		| freemind Supervisor sezione Programmazione
 
  
  
 Registrato: 04/04/07 21:28
 Messaggi: 4643
 Residenza: Internet
 
 | 
			
				|  Inviato: 10 Set 2008 19:57    Oggetto: |   |  
				| 
 |  
				| Quando è possibile è sempre meglio mettere il path assoluto. |  | 
	
		| Top |  | 
	
		|  | 
	
		| saetta Eroe in grazia degli dei
 
  
 
 Registrato: 25/02/08 11:52
 Messaggi: 129
 
 
 | 
			
				|  Inviato: 10 Set 2008 21:46    Oggetto: |   |  
				| 
 |  
				| In realtà (quando non avrò più problemi con il codice) prenderò il nome dei file da riga di comando il mio programma partirà digitando dalla shell (ubuntu - linux) una cosa tipo
 
 mygame file_config.txt file_log.txt
 
 che leggerò da argv[1] e argv[2] del main()
 
 PS. ora come ora ho un problema con le stringhe, ho postato in "stringa capricciosa"... hai mica qualche buona idea in proposito???
 
 Grazie, gentilissimo come sempre.
 |  | 
	
		| Top |  | 
	
		|  | 
	
		| saetta Eroe in grazia degli dei
 
  
 
 Registrato: 25/02/08 11:52
 Messaggi: 129
 
 
 | 
			
				|  Inviato: 14 Set 2008 16:53    Oggetto: |   |  
				| 
 |  
				| con DDD si, ci vuole il path assoluto, così mi apre i file e mi esegue come eclipse.. grazie
  |  | 
	
		| Top |  | 
	
		|  | 
	
		|  |