View Full Version : [C+Unix] problema posizione file in cartelle
xglobusx
17-03-2007, 10:51
Sto facendo un programma che prende in input un file, il file deve essere nella stessa cartella da cui il programma viene lanciato, come faccio a fare questo controllo? E' sensata come richiesta? Se io passo ad un programma un nome di un file che non è nella stessa cartella da cui viene lanciato il programma, questo file viene cercato anche altrove?
Fede_Reghe
18-03-2007, 16:20
Se metti un percorso relativo (es: ciao.txt) l'interprete cerca solo nella cartella dove c'è l'eseguibile, e in windows, nelle cartelle di sistema
sottovento
19-03-2007, 04:32
Sto facendo un programma che prende in input un file, il file deve essere nella stessa cartella da cui il programma viene lanciato, come faccio a fare questo controllo? E' sensata come richiesta? Se io passo ad un programma un nome di un file che non è nella stessa cartella da cui viene lanciato il programma, questo file viene cercato anche altrove?
Il controllo lo puoi fare utilizzando la funzione getcwd(), la quale ti restituisce la directory corrente (consulta le pagine man per maggiori informazioni).
A questo punto hai vari modi di procedere:
- puoi aprire il file in lettura in quella directory. Se lo trovi, lo aprirai correttamente, altrimenti avrai un errore;
- puoi usare la stat() per avere le caratteristiche fondamentali del file. Se non c'e' il file, stat() ritornera' -1 ed un codice di errore in errno;
- puoi aprire la directory (con le funzioni presenti in dirent.h, consulta il man) e listarne il contenuto per vedere se c'e' il file che ti interessa.
I file vengono cercati solo dove il tuo programma dice di cercare: siccome il programma lo scrivi tu potresti prevedere una lista di directory alternative dove cercare.
vBulletin® v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.