Browse Source

the file description is modified to local variable in function
static void copydir(const char * src, const char * dst)

lizhen9880 8 years ago
parent
commit
3e6f64fe7a
1 changed files with 4 additions and 5 deletions
  1. 4 5
      components/dfs/src/dfs_file.c

+ 4 - 5
components/dfs/src/dfs_file.c

@@ -568,7 +568,6 @@ void rm(const char *filename)
     }
 }
 FINSH_FUNCTION_EXPORT(rm, remove files or directories);
-
 void cat(const char* filename)
 {
     rt_uint32_t length;
@@ -655,8 +654,8 @@ static void copydir(const char * src, const char * dst)
     struct dirent dirent;
     struct stat stat;
     int length;
-
-    if (dfs_file_open(&fd, src, DFS_O_DIRECTORY) < 0)
+    struct dfs_fd cpfd;
+    if (dfs_file_open(&cpfd, src, DFS_O_DIRECTORY) < 0)
     {
         rt_kprintf("open %s failed\n", src);
         return ;
@@ -665,7 +664,7 @@ static void copydir(const char * src, const char * dst)
     do
     {
         rt_memset(&dirent, 0, sizeof(struct dirent));
-        length = dfs_file_getdents(&fd, &dirent, sizeof(struct dirent));
+        length = dfs_file_getdents(&cpfd, &dirent, sizeof(struct dirent));
         if (length > 0)
         {
             char * src_entry_full = RT_NULL;
@@ -708,7 +707,7 @@ static void copydir(const char * src, const char * dst)
         }
     }while(length > 0);
 
-    dfs_file_close(&fd);
+    dfs_file_close(&cpfd);
 }
 
 static const char *_get_path_lastname(const char *path)