Advertisement
Guest User

Untitled

a guest
Nov 27th, 2014
172
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.84 KB | None | 0 0
  1. DIR* ptr_dir = opendir(c_Localpath);
  2.  
  3. char** c_namesLocal = calloc(1, 256);
  4.  
  5. size_t numElements = 0;
  6. int returnCode =0;
  7. struct dirent ptr_PrevDirEntry;
  8. struct dirent* ptr_DirEntry = NULL;
  9. returnCode = readdir_r(ptr_dir, &ptr_PrevDirEntry,
  10. &ptr_DirEntry);
  11.  
  12. while ((returnCode ==0) && (ptr_DirEntry != NULL)) {
  13. char* name = c_namesLocal[numElements];
  14. strcpy(name, ptr_DirEntry->d_name);
  15. ptr_PrevDirEntry = *ptr_DirEntry;
  16. returnCode = readdir_r(ptr_dir, &ptr_PrevDirEntry,
  17. &ptr_DirEntry);
  18. numElements++;
  19. c_namesLocal = realloc(c_namesLocal, 256 * numElements);
  20. }
  21.  
  22. char* name = c_namesLocal[numElements];
  23. strcpy(name, ptr_DirEntry->d_name);
  24.  
  25. // You no longer need '*name'
  26. c_namesLocal[numElements] = strdup(ptr_DirEntry->d_name);
  27.  
  28. if (NULL == (c_namesLocal[numElements] = strdup(ptr_DirEntry->d_name)))
  29. {
  30. // signal out of memory and return
  31. }
  32.  
  33. DIR* ptr_dir = opendir(c_Localpath);
  34.  
  35. char** c_namesLocal = calloc(1, 256);
  36.  
  37. size_t numElements = 0;
  38. int returnCode =0;
  39. struct dirent *ptr_PrevDirEntry = NULL;
  40. struct dirent *ptr_DirEntry = NULL;
  41. int len_entry;
  42.  
  43. len_entry = offsetof(struct dirent, d_name) + fpathconf(dirfd(ptr_dir), _PC_NAME_MAX) + 1;
  44. ptr_PrevDirEntry = malloc(len_entry);
  45.  
  46. if(!ptr_PrevDirEntry)
  47. exit(0);
  48.  
  49. for(;;){
  50. readdir_r(ptr_dir, ptr_PrevDirEntry, &ptr_DirEntry);
  51. if(!ptr_DirEntry)
  52. break;
  53. else
  54. {
  55. char* name = c_namesLocal[numElements];
  56. //Perform copying or do whatever you want with the file entry read from the dir "c_Localpath"
  57. strcpy(name, ptr_DirEntry->d_name);
  58. numElements++;
  59. c_namesLocal = realloc(c_namesLocal, 256 * numElements);
  60. }
  61. }
  62.  
  63. //free "ptr_PrevDirEntry" before returning and take care of "c_namesLocal" as well.
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement