我一直在檢查和戰鬥這個程序沒有成功很長一段時間,希望你能幫助我。使用readdir_r閱讀目錄
這個想法是讀取存儲在c_Localpath
中的目錄,並將讀取的目錄複製到c_namesLocal
以返回它們。
我在執行中做錯了什麼?該程序打破了strcpy
,我不知道爲什麼。
DIR* ptr_dir = opendir(c_Localpath);
char** c_namesLocal = calloc(1, 256);
size_t numElements = 0;
int returnCode =0;
struct dirent ptr_PrevDirEntry;
struct dirent* ptr_DirEntry = NULL;
returnCode = readdir_r(ptr_dir, &ptr_PrevDirEntry,
&ptr_DirEntry);
while ((returnCode ==0) && (ptr_DirEntry != NULL)) {
char* name = c_namesLocal[numElements];
strcpy(name, ptr_DirEntry->d_name);
ptr_PrevDirEntry = *ptr_DirEntry;
returnCode = readdir_r(ptr_dir, &ptr_PrevDirEntry,
&ptr_DirEntry);
numElements++;
c_namesLocal = realloc(c_namesLocal, 256 * numElements);
}
非常感謝您的回答,但我沒有完全得到它,我應該如何分配,否則比realloc? – 2012-07-17 22:17:11