- struct dirent *entry = NULL;
- while ((entry = readdir(dir))) {
- if (!strncmp(entry->d_name, ".",
- 1) || !strncmp(entry->d_name, "..", 2))
+ int return_code;
+ struct dirent entry;
+ struct dirent *entry_result;
+ for (return_code = readdir_r(dir, &entry, &entry_result);
+ entry_result != NULL && return_code != 0;
+ return_code = readdir_r(dir, &entry, &entry_result)) {
+ if (!strncmp(entry.d_name, ".", 1) ||
+ !strncmp(entry.d_name, "..", 2))