PDA

Visualizza la versione completa : [C] Ottenere path di un file in esecuzione


Marc8
17-12-2016, 16:14
Buonasera a tutti, vi chiedo aiuto in quanto dopo un paio d'ore di ricerca ancora non ho trovato nulla.
Mi sto dedicando al C da qualche mese e fin'ora tutto bene, nessuna difficoltà, fino ad oggi..:dhò:
Ho la necessità di ottenere il percorso nel quale un file un file eseguibile, eseguito, risiede fisicamente..
Mi spiego meglio, mettiamo che ho un file AA (eseguibile) sul Desktop, se lo eseguo con doppio click riesco solo ad ottenere il percorso assoluto del file, che mi rimanda al path di esecuzione es.(/Users/Marc8) e non il percorso reale nel quale è situato il mio file AA es.(/Users/Marc8/Desktop).
Perfavore, se avete tempo e voglia AIUTATEMIIIIII!!!!!:D

oregon
17-12-2016, 17:58
riesco solo ad ottenere

Quale codice hai usato?

Marc8
17-12-2016, 18:01
Quale codice hai usato?

#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>

int main()
{

char *percorsoAssoluto;

char *buffer;

percorsoAssoluto = getwd(buffer);

printf("\n PERCORSO: %s\n", percorsoAssoluto);

return 1;

}

Ho provato anche ad utilizzare getcwd() e get_current_dir_name() ma il risultato è sempre lo stesso...

Marc8
18-12-2016, 16:11
#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>

int main()
{

char *percorsoAssoluto;

char *buffer;

percorsoAssoluto = getwd(buffer);

printf("\n PERCORSO: %s\n", percorsoAssoluto);

return 1;

}

Ho provato anche ad utilizzare getcwd() e get_current_dir_name() ma il risultato è sempre lo stesso...



Finalmente ho risolto, non mi ero reso conto di quanto potesse essere banale la mia richiesta..:facepalm:

Ecco il codice:

#include<stdio.h>
#include<stdlib.h>


int main(int Num_argomenti, char **Elenco_argomenti)
{
int i = 0;
int i_MAX;
char *percorsoReale;

while (Elenco_argomenti[0][i] != '\0')
{
if (Elenco_argomenti[0][i] == '/')
{
i_MAX = i;
}
i++;
}

percorsoReale = (char *) malloc(i_MAX + 1 * sizeof(char));


i = 0;
while (i <= i_MAX)
{
percorsoReale[i] = Elenco_argomenti[0][i];
i++;
}

printf("\n%s\n", percorsoReale);

return 1;

}

Comunque grazie a tutti per l'interesse!!:ciauz:

Loading