跳到主要内容

I/O 与时钟

WASI 通过能力授予提供受控 I/O。本节覆盖文件、stdio 与时钟接口的要点。

文件系统与 stdio

  • 预打开目录后,程序可在沙箱内按相对路径访问。
  • stdio(stdin/stdout/stderr)可用于简单交互与日志。

示意:

时间/时钟接口

  • 常见接口:clock_time_get(运行时封装)。
  • 典型用途:打点/日志/过期判断。

注意:

  • 精度与时区:WASI 提供的是原始时间源(如纳秒级 epoch),不含本地化/时区转换;
  • 可移植性:不同运行时可能对高精度时钟权限有不同策略;
  • 错误处理:当缺乏能力时应显示友好信息并降级。

运行示例

参考 examples/ch04/wasi_fs_time

rustup target add wasm32-wasi
cd examples/ch04/wasi_fs_time
cargo build --release --target wasm32-wasi
wasmtime --dir=. target/wasm32-wasi/release/wasi_fs_time.wasm sample.txt