Obtenir le chemin d'accès complet des fichiers dans C

Fondamentalement, ce bout de code me donne les noms des fichiers dans le répertoire....Mais j'ai besoin d'obtenir leurs chemins d'accès à la place.. j'ai essayé d'utiliser la fonction realpath(). Mais je l'utilise mal, je suppose(je l'ai montré dans le code où j'ai voulu l'utiliser). Toutes les idées sur la façon de résoudre ce problème?. Une chose de plus: Il me donne seulement les noms des sous-répertoires, mais en gros j'ai besoin d'obtenir les chemins de la leurs fichiers trop.Merci.

#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;
}
realpath devrait fonctionner, que voyez-vous et qu'attendez-vous?
Je pense que je l'utilise mal là...je Peux dire comme la fonction realpath(pDirent->d_name) que j'ai utilisé dans le code??? Je pense pas...j'ai ajouté char actualpath [PATH_MAX]; Et ensuite essayé comme printf ("[%s]\n", realpath(actualpath,pDirent->d_name)); Mais ça ne fonctionne toujours pas....
Mon homme realpath dit ceci: char *realpath(const char *restrict file_name, char *restrict resolved_name);.

OriginalL'auteur Manu Lakaster | 2013-10-28