FATFS 初学之 f_chdir/ f_chdrive

详见: 嵌入式大讲堂
 
 
 1 FRESULT f_chdir (
 2     const TCHAR *path    /* Pointer to the directory path */
 3 )
 4 {
 5     FRESULT res;
 6     DIR dj;
 7     DEF_NAMEBUF;
 8 
 9 
10     res = chk_mounted(&path, &dj.fs, 0);
11     if (res == FR_OK) {
12         INIT_BUF(dj);
13         res = follow_path(&dj, path);        /* Follow the path */
14         FREE_BUF();
15         if (res == FR_OK) {                    /* Follow completed */
16             if (!dj.dir) {
17                 dj.fs->cdir = dj.sclust;    /* Start directory itself */
18             } else {
19                 if (dj.dir[DIR_Attr] & AM_DIR)    /* Reached to the directory */
20                     dj.fs->cdir = LD_CLUST(dj.dir);
21                 else
22                     res = FR_NO_PATH;        /* Reached but a file */
23             }
24         }
25         if (res == FR_NO_FILE) res = FR_NO_PATH;
26     }
27 
28     LEAVE_FF(dj.fs, res);
29 }
View Code

函数功能:f_chdir函数改变一个驱动器的当前目录。

描述:

f_chdir函数当_FS_RPATH == 1时可用。
f_chdir函数改变一个逻辑驱动器的当前目录。当一个逻辑驱动器被自动挂载时,它的当前目录被初始化为根目录。注意:当前目录被保存在每个文件系统对象中,因此它也影响使用同一逻辑驱动器的其它任务。

 

f_chdrive:

 1 FRESULT f_chdrive (
 2     BYTE drv        /* Drive number */
 3 )
 4 {
 5     if (drv >= _VOLUMES) return FR_INVALID_DRIVE;
 6 
 7     CurrVol = drv;
 8 
 9     return FR_OK;
10 }
View Code

函数功能:f_chdrive函数改变当前驱动器。

描述:

f_chdrive函数当_FS_RPATH == 1时可用。
f_chdrive函数改变当前驱动器。当前驱动器号初始值为0,注意:当前驱动器被保存为一个静态变量,因此它也影响使用文件函数的其它任务。

 

例:

1   // 改变当前驱动器的当前目录(根目录下的dir1)
2     f_chdir("/dir1");
3  
4     // 改变驱动器2的当前目录(父目录)
5     f_chdir("2:..");
View Code

 

PS:还是不知道有什么作用....

转载于:https://www.cnblogs.com/Danhuise/p/3912083.html

你可能感兴趣的:(FATFS 初学之 f_chdir/ f_chdrive)