Originariamente inviato da YuYevon
Non sarebbe meglio ricorrere a soluzioni portabili quando possibile? :]

dirent.h

codice:
#include <stdio.h>
#include <stdlib.h>
#include <dirent.h>

int main(void)
{
    DIR *dp;
    struct dirent *dir_p;

    dp = opendir(/*directory*/);

    if ( dp == NULL )
       exit(1);

    while( ( dir_p = readdir(dp) ) != NULL )
           printf("%s\n", dir_p -> d_name);

    closedir(dp);

    return 0;
}
scusate a me non funziona.
come directory ho messo la stringa.
"/test_images/caps/"
con il percorso a partire dalla directory di lavoro.
Nel debug se guardo il risultato dir_p -> d_name vedo:
caps~\0\0\0\b\362\b\30\0$\351o.\24\0\bimg0.bmp\0\3 66\b\30\0\370\321t2\20\0\bcaps\0\363\b\30\0\264\23 5\242K\24\0\bimg1.bmp\0\r\300\27\0\233T1S\20\0\4.. \0\0\4\364\b\30\0\232A\353]\24\0\bimg5.bmp\0\357\b\30\0B\246\301_\24\0\bimg3. bmp\0\360\b\30\0\270\20'l\24\0\bimg2.bmp\0\356\b\3 0\0\373p\bs\20\0\4.\0\0\0\4\361\b\30\0\377\377\377 \177\24\0\bimg4.bmp", '\0' <repeats 79 times>

La directory è presente e i file che vedete nell'ultima stringa sono accessibili inserendo sempicemente il percorso completo.
Non mi da alcun errore fino alla stampa del file, che non riesce a fare per mancanza di un carattere.
Lavoro su Fedora 11 con ll'ultimo eclipse cdt.
Mi sapreste spiegare perché?