Uzyskaj pełną ścieżkę plików w C

Zasadniczo ten fragment kodu daje mi nazwy plików w katalogu .... Ale muszę dostać ich ścieżki zamiast tego. Próbowałem użyć funkcji realpath (). Ale używam go źle, tak myślę (pokazałem w kodzie, gdzie chciałem go użyć). Jakieś pomysły, jak to naprawić? Jeszcze jedna rzecz: Daje mi tylko nazwy podkatalogów, ale w zasadzie muszę też pobrać ścieżki ich plików. Dzięki.

#include <stdio.h>
#include <dirent.h>
#include <stdlib.h>
#include <sys/stat.h>
#include <unistd.h>

int main (int c, char *v[]) {
    int len, n;
    struct dirent *pDirent;
    DIR *pDir;
    int ecode=0;
    struct stat dbuf;
    for (n=1; n<c; n++){
        if (lstat(v[n], &dbuf) == -1){
            perror (v[n]);
            ecode ++;
        }
        else if(S_ISDIR(dbuf.st_mode)){
            printf("%s is a directory/n ", v[n]);
        }
        else{
            printf("%s is not a directory\n", v[n]);
        }
    }
    if (c < 2) {
        printf ("Usage: testprog <dirname>\n");
        return 1;
    }
    pDir = opendir (v[1]);
    if (pDir == NULL) {
        printf ("Cannot open directory '%s'\n", v[1]);
        return 1;
    }

    while ((pDirent = readdir(pDir)) != NULL) {
        // here I tried to use realpath()
        printf ("[%s]\n", realpath(pDirent->d_name));
    }
    closedir (pDir);
    return 0;
}

questionAnswers(1)

yourAnswerToTheQuestion