Pagina 1 di 5 1 2 3 ... ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 45
  1. #1
    Utente di HTML.it
    Registrato dal
    Nov 2005
    Messaggi
    278

    [C] Recuperare indirizzo cartella in cui è contenuto il programma

    So che con altri linguaggi di programmazione è possibile recuperare l'indirizzo della cartella in cui è contenuto l'eseguibile. In C è possibile?

    Devo stampare su un file txt, un risultato numerico e voglio che il file venga salvato sempre all'interno della stessa cartella cui è contenuto il mio eseguibile. È fattibile?

  2. #2
    Che IDE usi?
    Se non sbaglio, in ogni caso, tutti gli IDE creano una nuova cartella per ogni progetto che tu fai e lì salvano tutti i file sorgente e anche i file eseguibili.. Nel codice che scrivi, quando apri un file con la fopen puoi specificare dove vuoi che venga salvato il file che apri, se ad esempio fai:

    codice:
    fopen ("dati.txt", "w");
    Il file verrà salvato nel direttorio corrente (che in questo caso è quello del progetto su cui stai lavorando) perchè non hai specificato nessun percorso aggiuntivo.
    Se invece fai, ad esempio:

    codice:
    fopen ("/Users/Name/ecc.../dati.txt", "w");
    il file viene salvato nel percorso che hai indicato!

    p.s. il percorso che ho specificato io è in "modalità Unix" (non so se lavori su Windows/Mac)
    Salute a voi, da Laikius!

    --> Faber est suae quisque fortunae <--

  3. #3
    Utente di HTML.it
    Registrato dal
    Nov 2005
    Messaggi
    278
    Nel momento che lavori nell'IDE sì, ma quando compili il tuo sorgente e l'eseguibile lo fai girare "normalmente" nel tuo sistema operativo le cose a me cambiano.

    Quando apro l'eseguibile il file viene salvato nella home dell'utente e non nella cartella che contiene l'eseguibile.

    So che puoi indicare l'indirizzo nell' fopen ed a quanto pare se non indichi l'indirizzo viene salvato automaticamente nella home dell'utente, ma se volessi salvare il file nella cartella in cui l'utente mette l'eseguibile? In maniera da non averlo in giro per il computer?

    A me servirebbe che funzioni così sia se compilato per Windows che per Mac che per Linux. Esiste qualche comando universale che non richiede librerie specifiche del sistema operativo?

    p.s.
    Uso xCode su Mac.

  4. #4
    Originariamente inviato da stejano
    Nel momento che lavori nell'IDE sì, ma quando compili il tuo sorgente e l'eseguibile lo fai girare "normalmente" nel tuo sistema operativo le cose a me cambiano.

    Quando apro l'eseguibile il file viene salvato nella home dell'utente e non nella cartella che contiene l'eseguibile.

    So che puoi indicare l'indirizzo nell' fopen ed a quanto pare se non indichi l'indirizzo viene salvato automaticamente nella home dell'utente, ma se volessi salvare il file nella cartella in cui l'utente mette l'eseguibile? In maniera da non averlo in giro per il computer?

    A me servirebbe che funzioni così sia se compilato per Windows che per Mac che per Linux. Esiste qualche comando universale che non richiede librerie specifiche del sistema operativo?

    p.s.
    Uso xCode su Mac.
    Mmm capisco il problema...
    Sinceramente non so risponderti, so solo intuire una soluzione scomoda, che potrebbe essere quella di chiedere all'utente o il nome completo o solo il percorso del file in cui salvare il risultato, copiare adeguatamente il tutto in una stringa fileName e poi usare questa per la fopen, ma capisco che forse non è quello che cerchi..
    Salute a voi, da Laikius!

    --> Faber est suae quisque fortunae <--

  5. #5
    Utente di HTML.it
    Registrato dal
    Nov 2005
    Messaggi
    278
    Eh ci ho pensato anch'io, ma esatto non è quello che cerco. L'utente si dilungherebbe troppo ad inserire l'intero indirizzo.

  6. #6
    Utente di HTML.it
    Registrato dal
    Jul 2008
    Messaggi
    1,326
    getcwd()?
    every day above ground is a good one

  7. #7
    Utente di HTML.it
    Registrato dal
    Sep 2009
    Messaggi
    487

    .

    char path [1000];
    GetModuleFileName(NULL,path,sizeof(path));

  8. #8
    Utente di HTML.it
    Registrato dal
    Nov 2005
    Messaggi
    278
    getcwd() funziona ma mi restituisce sempre l'indirizzo home (ho provato a vedere che indirizzo rilevava con un printf).

    Per caso gli eseguibili in C partono sempre dalla home del computer?
    Ne sapete qualcosa in più voi?

  9. #9
    Utente di HTML.it
    Registrato dal
    Jul 2008
    Messaggi
    1,326
    Originariamente inviato da stejano
    getcwd() funziona ma mi restituisce sempre l'indirizzo home (ho provato a vedere che indirizzo rilevava con un printf).

    Per caso gli eseguibili in C partono sempre dalla home del computer?
    Ne sapete qualcosa in più voi?
    Ma sarà sicuramente qualche meraviglia di xcode, la directory corrente deve essere quella in cui avvii l'eseguibile. Avvialo da riga di comando.
    every day above ground is a good one

  10. #10
    Utente di HTML.it
    Registrato dal
    Nov 2005
    Messaggi
    278
    Infatti l'ho buildato ed avviato da una cartella del normale. Insomma come se fosse un normale programmino eseguibile. Tuttavia il printf sstampava sempre lo stesso indirizzo di home ed il file veniva salvato sempre nella home.

    Proverò a fare ulteriori controlli, eventualmente mi tocca rinunciarci. Magari provo a compilarlo anche su Win e Ubuntu, magari mi dà risultati differenti.

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.