豫豫言文档API ATLAS
入口包说明.html
62 模块1862 名称
← 全部模块

模块 / 11

原生参数。豫

原生参数。豫

10公开名称

原生启动块上限

公开
「整数」

文言:原生之参数与环境,临用自系统重取:Linux 读 /proc/self 之 cmdline 与 environ,macOS 以 sysctl 之 KERN_PROCARGS2 取之;读入堆中之字节数组,不足则四倍其容而重读,至多二百五十六兆字节。启动时所书之参数区仅四千零九十六字节、环境块仅一千零二十字节,编译器之工作进程参数甚长,截之则误。宿主原语行时不回收,故中间之对象无须暂根。汉语:原生系统上的命令行参数与环境变量在调用时从操作系统重新读取:Linux 读 /proc/self/cmdline 与 /proc/self/environ,macOS 用 sysctl 的 KERN_PROCARGS2;读进堆里的字节数组,容量不够就放大四倍重读,至多 256 MiB。启动时写的参数区只有 4096 字节、环境块只有 1020 字节,而编译器工作进程的参数(几十个依赖文件路径)很长,被截断就会出错。宿主原语执行期间不做回收,所以中间对象不必放临时根。待办事项:WASI 的参数与环境、底层接口的取参数仍读启动时写的固定区。

原生读启动块

公开
化「整数」而化「整数」而「整数」

文言:读启动块:类零为参数,一为环境(Linux 分二文,macOS 同一块)。返字节数组,其长即所读之数。汉语:读取启动块:类 0 取参数、1 取环境(Linux 是两个文件,macOS 是同一个 KERN_PROCARGS2 块)。返回字节数组对象,其长度字段改成实际读到的字节数(不影响回收:回收按对象头里的总字节数扫描)。

苹参数起

公开
化「整数」而化「整数」而「整数」

文言:macOS 之块中,参数之始:越参数之数、执行之径与其后之零。汉语:在 macOS 的 KERN_PROCARGS2 块里定位第 0 个参数:跳过开头 4 字节参数个数、可执行文件路径及其后的填充零。

零终串数

公开
化「整数」而化「整数」而化「整数」而化「整数」而「整数」

文言:计以零终之串数于[起,止)。汉语:数 [起, 止) 里以零结尾的串的个数。

零终串对象

公开
化「整数」而化「整数」而化「整数」而「整数」

文言:取以零终之串为字节数组。汉语:把从“起”开始、以零结尾(至多到“止”)的串拷成字节数组。

填零终串们

公开
化「整数」而化「整数」而化「整数」而化「整数」而化「整数」而化「整数」而「有」

暂无说明。

原生参数对象

公开
化「有」而「整数」

文言:原生之命令行参数(原语七):去第零个,成(元组,个数)。汉语:原生系统的命令行参数(原语 7):去掉第 0 个参数,返回(参数元组,个数),形状与裸机实现相同。

名等号首

公开
化「整数」而化「整数」而化「整数」而化「整数」而「爻」

文言:串首合名而继以等号否。汉语:判断从“址”开始的串是否以 名 开头并紧跟“=”。

寻环境串

公开
化「整数」而化「整数」而化「整数」而化「整数」而化「整数」而「整数」

文言:寻环境之值:逐串比之,遇空串(macOS 环境之末)而止。返值之起,无则负一。汉语:在 [起, 止) 的“名=值”串里找 名:逐串比较,遇到空串(macOS 环境区末尾)就停。返回值的起点,找不到返回 -1。

原生环境变量对象

公开
化「整数」而「整数」

文言:原生之环境变量(原语九):成(有否,值)。汉语:原生系统按名取环境变量(原语 9):返回(是否存在,值)二元组,形状与裸机实现相同。