odczytanie nazwy kalalogu pliku wykonywalnego

0

Witam,
Potrzebny mi jest możliwie jak najprostszy sposób dostania nazwy katalogu/folderu z którego wywołałem plik wykonywalny. Mam taki kod który wyświetla mi zawartość katalogu w którym odpaliłem program:

#include <stdio.h>
#include <dirent.h>

int main(){
    DIR *dir;
    struct dirent *plik;

    dir = opendir(".");
    plik = dir;

    while(plik = readdir(dir)){
        printf("%s\n", plik->d_name);
    }

    closedir(dir);
    return 0;
}

Nie wiem w jaki sposób uzyskać nazwę katalogu nadrzędnego, najlepiej gdyby udało się to z robić w jakiś podobny sposób. Dzięki z góry za pomoc

1

W argv[0] masz wskaźnik do tablicy ze ścieżką do pliku, który został użyty do wykonania programu (Uwaga! Nie musi to być ścieżka do samego pliku wykonywalnego!). Jeśli ścieżka w niej jest względna, możesz zrobić bezwzględną łącząc (umiejętnie) ją z wynikiem getcwd(). Potem już wystarczy odciąć ostatni element ścieżki.
Jeśli to Linux, to w nieprzenośny sposób możesz użyć /proc/<PID>/cmdline.

0

a no faktycznie, zapomniałem o argv;) dzięki wielkie;)

0

Pamiętaj tylko, że argv[0] bywa zwodnicze :)

1 użytkowników online, w tym zalogowanych: 0, gości: 1