Citazione:
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;
}
Non capisco perché questa porzione di codice a me non funziona.
come directory ho messo la stringa.
"/test_images/caps/"
che è 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>
"img0.bmp","img1.bmp", etc. sono proprio i nomi dei file contenuti nella cartella.
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 nome del file, che non riesce a fare per mancanza di un carattere (tilde?).
Lavoro su Fedora 11 con l'ultimo eclipse cdt.
Mi sapreste spiegare dove sbaglio?
Grazie.