跳到正文
豫言包管理
← 全部包

豫言操作系统文件节点适配 0.1.0

豫言 · 库

路一 Node 宿主的文件接口适配:按启动时授予的目录权读写已存在的文件,路径不得越出目录。

文件接口 Node 适配

路一 Node 宿主的[文件接口](../../../豫言操作系统接口/文件/规范.汉语.md)适配。目录权只来自启动时的宿主选项:--授权目录 名=路径(可读可写)或 --授权只读目录 名=路径;取得已授目录 按名称取目录权,未授权的名称返回 未获授权。

  • 路径规则:/ 分隔的相对路径;空串、以 / 开头、空段、.、..、零字节与无效 UTF-8 返回 输入无效;Windows 上段内的 \ 与 : 也返回 输入无效(待办事项:是否在所有平台都拒绝,以求三平台完全一致)。
  • 越界防护:宿主先求目标的真实路径,确认仍在授权目录内(符号链接指向目录外时返回 输入无效),再打开。求真实路径与打开之间仍有竞态,待办事项:逐段 O_NOFOLLOW 打开。
  • 打开只读文件 以只读打开,打开可写文件 以只写打开已存在的文件,都不创建、不截断;目标不存在返回 资源不存在,不是普通文件返回 输入无效,只读目录上打开可写文件返回 未获授权。
  • 读取文件 读至多上限字节(单次不超过值桥交换上限 16 MiB);读到末尾返回 文件读尽,上限为零返回空字节串,上限为负返回 输入无效。写入文件 返回实际写入字节数,空输入返回零,暂时写不进返回 资源暂不可用。
  • 读写方向分离:只读柄写入、可写柄读取都返回 未获授权。关闭文件 之后(无论成败)句柄失效,再用返回 资源已失效;伪造的句柄号同样得到 资源已失效。

新增宿主原语(外调名):豫言_节点_文件取得目录、豫言_节点_文件打开、豫言_节点_文件读取、豫言_节点_文件写入、豫言_节点_文件关闭,实现在 豫言操作系统/宿主/节点/应用宿主.mjs,返回(状态码,…):0 成功,1 至 7 依次对应未获授权、资源暂不可用、资源已失效、资源不存在、资源已存在、资源配额已尽、输入无效,8 为宿主操作失败(附消息),读取时 9 表示读尽。本适配依赖基础接口的 错误 模块,由节点模式的构建器一并绑定。

依赖

查看包配置

上传历史

当前上传修订:1 ·

  1. 上传修订 1
    下载 ZIP

包层级

父包:豫言操作系统适配

没有子包。