当前位置: 首页 > news >正文

昆明做网站比较牛的wordpress 关闭搜索

昆明做网站比较牛的,wordpress 关闭搜索,wordpress 主页设置,企业自己建设的营销网络背景 接上篇wiki 31、【OS】【Nuttx】OSTest分析#xff08;1#xff09;#xff1a;stdio测试#xff08;一#xff09; 继续stdio测试的分析#xff0c;上篇讲到标准IO端口初始化#xff0c;单从测试内容来说其实很简单#xff0c;没啥可分析的#xff0c;但这几篇…背景 接上篇wiki 31、【OS】【Nuttx】OSTest分析1stdio测试一 继续stdio测试的分析上篇讲到标准IO端口初始化单从测试内容来说其实很简单没啥可分析的但这几篇分析的 wiki 会另辟蹊径从文件系统的角度进行分析标准IO端口的初始化过程后续再分析文件系统的时候相关知识点会直接引用这几篇wiki重复内容不会再出现 标准IO端口初始化 之前介绍了文件系统中 filelist 队列下面分析 filelist 队列里面的核心成员 fl_files file 结构体 之前wiki说过核心成员 fl_files 为一个二维数组指针指向了存放文件实例的内存区域用户通过文件描述符 fd 可以索引到对应的文件实例索引方法为 fl_files[fd / BLOCK_SIZE][fd % BLOCK_SIZE] 必选成员 核心成员 fl_files 的类型定义如下首先看里面的4个必选成员 f_oflagsf_posf_inodef_priv其中核心成员的是 f_inodef_inode 体现了文件系统中拓扑结构 f_oflags文件的打开模式标志决定了文件可以如何被访问比如只读只写可读可写创建文件等等解释起来比较绕可以直接来看这个标志都支持哪些模式。 查看其模式定义如下其中大部分模式是基于 POSIX 标准的只有少数几个是Nuttx独有的比如 O_RDOKO_WROK应该是拿来做兼容的这意味着大部分这些打开模式在类Unix系统比如Linux中也存在 f_pos文件偏移量表示文件当前的读写位置对顺序读取和写入很重要有几个关键点 1、初始值当文件首次打开时f_pos 通常被初始化为 0表示文件的开头如果文件以追加模式打开如上面模式定义的O_APPEND那在每次写入之前f_pos 会被自动设置为文件末尾这点代码也能看出来 2、文件读取从文件读数据时f_pos 指定了从哪个字节开始读。每次成功调用读取函数如 host_read()f_pos 会自动增加所读取的字节数这点随便找一个文件系统就能看出来比如hostfs 3、文件写入和文件读取一样在写数据到文件时f_pos 确定了数据应该被写入的位置。每次成功调用写入函数如 host_write()f_pos 也会相应地增加 f_inodefile 类型中的核心成员体现了文件系统中拓扑结构在 Nuttx 中每个文件和目录都有一个对应的inode。这个特定的 inode 包含了描述文件或目录所需的信息它包含了文件的元数据比如节点名字层次关系、操作函数、时间戳等在文件系统内部使用用户通常不会直接与之交互。用户一般通过标准的文件系统API如open, read, write等来间接操作该数据结构。如下图所示当用户想要注册一个文件C时其路径为 /A/B/C此时文件系统会自动创建三个节点A/B/CB/CC其中 A/B/C 是 B/C 的父节点B/C 是 C 的父节点且 A/B/C 和 /B/C 均为目录节点C 为文件节点最终在 C 节点上添加更详细的节点信息如名字操作函数等。 f_priv每次打开文件时特有的私有数据注意inode 中也有 i_private 成员两者的差别在于f_priv 为每个单独的实例用户提供私有空间以保存仅对该次打开有效的数据i_private 为整个 inode 节点的提供全局性私有数据如图所示不同用户可以通过不同的文件实例操作同一个节点 可选成员 下面来看下 file 类型的可选成员可选成员通过配置项来决定是否启用有 f_refsf_tag_fdsanf_tag_fdcheckf_backtracelocked 等五个成员 f_refs通过使用方式可以看到该成员为原子变量类型用来追踪引用该文件结构的次数以实现文件共享访问确保所有对该文件的引用都消失时再安全地释放资源。 在多核环境中不同进程或线程可能需要同时访问同一个文件这种共享访问须确保安全性和一致性。当用户打开一个文件时实际上是通过文件描述符来操作文件实例而此时另一用户也可通过相同的文件描述符来操作该文件实例。 f_refs 成员作为原子类型的引用计数器记录有多少个用户正在引用该文件实例每当一个新用户打开该文件时引用计数增加而当用户关闭该文件时引用计数减少当所有用户都关闭了该文件时Nuttx 才会认为可以安全清理和释放该文件实例下的相关资源如内存、缓冲区等。 f_tag_fdsan英文全名 sanitizer 一种并发编程中的检测工具tsan 和 asan 比较常见 1、tsanthread sanitizer 用来检测并发编程中的数据竞争和死锁等问题 2、asanaddress sanitizer 用来检测内存越界、内存泄漏、使用已释放内存等问题 3、fdsanfile description sanitizer 用来检测和防止文件描述符的误用问题 具体来说有如下检测场景 一、防止文件实例被重复打开可以看到每当打开一个新文件时f_tag_fdsan 将被 android_fdsan_exchange_owner_tag 设置成一个非0值如果还有用户尝试打开该文件时此时由于 f_tag_fdsan 非0Nuttx 将进入 PANIC 恐慌 流程图如下 二、防止文件被重复关闭同样的当关闭文件实例后f_tag_fdsan 将被重新设置为0此时由于 f_tag_fdsan 为0如果还有用户尝试关闭该文件时Nuttx 将进入 PANIC 恐慌 f_tag_fdcheck用来保证文件描述符的唯一性设计很巧妙下一篇wiki分析f_backtrace用来跟踪打开文件的用户是谁locked对具体的文件操作进行上锁防止并发竞争
http://www.zqtcl.cn/news/579489/

相关文章:

  • 重庆网站建设总结WordPress简单百度站长插件
  • pc网站转换成微网站工作室推广网站
  • 嘉兴优化网站公司做水果生意去哪个网站
  • 青岛知名网站建设公司排名wordpress商场插件
  • 设计网站猪八戒自己制作logo免费生成器
  • 深圳万齐创享网站建设网站建设基本教程
  • 聊城做网站信息建设工程合同可以分为
  • 网站设计 注意做筹款的网站需要什么资质
  • 家居网站建设费用国土局网站建设经验
  • 企业网站开发教程网站建设更改
  • 违法网站怎么做安全wordpress自定义应用
  • 四平英文网站建设wordpress添加特效
  • 如何在手机上制作网站企业网站 微博模块
  • 网站内容规范网站建设建设公司哪家好
  • 深圳网站制作公司地址如何制作手机版网站
  • 深圳定制网站制作报价网络交易平台
  • 鞍山网站制作报价wordpress手机客户端端
  • 开发触屏版网站标签苏州沧浪区做网站的
  • 网站接入商钓鱼网站链接怎么做
  • 建设部机关服务中心网站网站建设维护费 会计科目
  • 网站解析后怎么解决方法淘宝网站建设方案模板
  • 淘宝客可以自己做网站推广吗营销网络建设怎么写
  • 上海高端网站制作广告设计培训课程
  • 互联网站平台有哪些建筑工程教育网官网
  • 广告传媒公司哪家好职场seo是什么意思
  • 番禺龙美村做网站博山区住房和城乡建设局网站
  • 山东网站建设xywlcnwordpress如何创建导航
  • 直接用ip访问网站网站开发常用字体
  • 江西省城乡建设培训网 官方网站杭州十大软件公司
  • 建设网站需要什么设备南昌购物网站制作