From adc5dab5b23c0b9d623142ad9252312476cd7717 Mon Sep 17 00:00:00 2001 From: David Lin Date: Sat, 17 Oct 2020 11:53:11 +0800 Subject: [PATCH] Update listdir.c 1.close dir before return; 2.fixed indentation. --- examples/file/listdir.c | 73 +++++++++++++++++++++-------------------- 1 file changed, 37 insertions(+), 36 deletions(-) diff --git a/examples/file/listdir.c b/examples/file/listdir.c index 98419db873..d8ea7af82a 100644 --- a/examples/file/listdir.c +++ b/examples/file/listdir.c @@ -14,49 +14,50 @@ void list_dir(const char* path) { char * fullpath; - DIR *dir; + DIR *dir; - dir = opendir(path); - if (dir != RT_NULL) - { - struct dirent* dirent; - struct stat s; + dir = opendir(path); + if (dir != RT_NULL) + { + struct dirent* dirent; + struct stat s; - fullpath = rt_malloc(256); - if (fullpath == RT_NULL) - { - rt_kprintf("no memory\n"); - return; - } + fullpath = rt_malloc(256); + if (fullpath == RT_NULL) + { + closedir(dir); + rt_kprintf("no memory\n"); + return; + } - do - { - dirent = readdir(dir); - if (dirent == RT_NULL) break; - rt_memset(&s, 0, sizeof(struct stat)); + do + { + dirent = readdir(dir); + if (dirent == RT_NULL) break; + rt_memset(&s, 0, sizeof(struct stat)); - /* build full path for each file */ - rt_sprintf(fullpath, "%s/%s", path, dirent->d_name); + /* build full path for each file */ + rt_sprintf(fullpath, "%s/%s", path, dirent->d_name); - stat(fullpath, &s); - if ( s.st_mode & S_IFDIR ) - { - rt_kprintf("%s\t\t\n", dirent->d_name); - } - else - { - rt_kprintf("%s\t\t%lu\n", dirent->d_name, s.st_size); - } - } while (dirent != RT_NULL); + stat(fullpath, &s); + if ( s.st_mode & S_IFDIR ) + { + rt_kprintf("%s\t\t\n", dirent->d_name); + } + else + { + rt_kprintf("%s\t\t%lu\n", dirent->d_name, s.st_size); + } + } while (dirent != RT_NULL); - closedir(dir); - } - else - { - rt_kprintf("open %s directory failed\n", path); - } + closedir(dir); + } + else + { + rt_kprintf("open %s directory failed\n", path); + } - rt_free(fullpath); + rt_free(fullpath); } #ifdef RT_USING_FINSH