0
点赞
收藏
分享

微信扫一扫

RT-Thread 开启 DFS_USING_POSIX 编译问题的分析


环境

  • RT-Thread 4.1.0
  • Keil MDK5
  • RT-Thread Studio

DFS_USING_POSIX

  • RT-Thread 前面的版本:使用头文件:​​dfs_posix.h​​,新版本,这个头文件不存在了
  • 经过全局的搜索,发现新版本的RT-Thread,如RT-Thread 4.1.0,需要使用: ​​unistd.h​
  • 仔细看了下代码,推荐使用的替代方法为:

#ifdef DFS_USING_POSIX
#include <unistd.h>
#include <fcntl.h>
#endif /* DFS_USING_POSIX */

fcntl.h

  • 这个里面,有我们熟悉的:​​open​​​,​​fcntl​​​ 类似于 ​​ioctl​

int open(const char *file, int flags, ...);
int fcntl(int fildes, int cmd, ...);
int creat(const char *path, mode_t mode);

unistd.h

  • 这个文件的函数比较的多,除了上面的​​open​​​外,其他的都有了,也就是文件操作函数声明(设备也是文件)都齐全了,如 ​​close​​​ ​​read​​​ ​​write​​​ ​​lseek​​ 等

具体实现

  • RT-Thread的POSIX 接口(文件系统操作接口),实现的接口主要来自:​​dfs_posix.c​​ 这个文件,这个文件
  • 如 ​​open​​​ 调用 ​​dfs_file_open​

小结

  • 可以通过全局的搜索,确认函数的组织方式,存在哪里,头文件的引用
  • 可以通过头文件,找到函数的具体实现,从而揭开posix的实现方法
  • 了解【函数封装】在操作系统中的作用,标准接口的实现原理


举报

相关推荐

0 条评论