Referencia Zigzkit (SDK consumido)

src/os.zig

Declaraciones públicas de src/os.zig (zkit (SDK consumido)).

ImplementadoSin versión del tren todavía· generada desde apps/docs/generated/zig/zkit.json

Página generada desde zkit@zkit-0.0.0-_fk2iAa4BQCqGFKJeeY9WvMQClX5kiZQ2iOZrVsxVyyN (src/root.zig). No se edita a mano: bun run docs:gen la regenera y bun run docs:check falla si difiere.

zkit/os — entorno y aleatoriedad del SO sin runtime Io.

Desde 0.16 std.process.getEnvVarOwned y std.crypto.random cuelgan de la interfaz Io. Un daemon con hilos propios no tiene uno que pasarles, así que cada repo reescribía getenv y randomBytes sobre libc (styx los tomaba del fork de quic-zig, quic.sys, que es un shim de sockets y no debería ser la dependencia de nadie para leer una variable de entorno).

Reglas:

  • getenv devuelve memoria de libc: no se libera y no sobrevive a un setenv posterior del mismo nombre. Si hay que conservarla, cópiala.
  • getenvInt distingue "no está" (null) de "está mal" (error): un valor de configuración malformado no se convierte en el default en silencio — el llamador decide si eso es fatal.
  • randomBytes es aleatoriedad CRIPTOGRÁFICA (getrandom / arc4random). Nunca falla en silencio: si el kernel no puede darla, pánico.

os.getenv

fn · línea 31

pub fn getenv(name: [*:0]const u8) ?[:0]const u8

Valor de la variable de entorno name, o null si no está definida. La memoria pertenece a libc (ver doc del módulo).

os.GetenvIntError

const · línea 36

pub const GetenvIntError = error{InvalidEnvValue}

Sin ///.

os.getenvInt

fn · línea 40

pub fn getenvInt(comptime T: type, name: [*:0]const u8) GetenvIntError!?T

Entero decimal de la variable name. null si no está definida o está vacía; error.InvalidEnvValue si no es un T válido (incluye desborde).

os.randomBytes

fn · línea 49

pub fn randomBytes(buf: []u8) void

Rellena buf con bytes aleatorios criptográficos.

os.randomInt

fn · línea 67

pub fn randomInt(comptime T: type) T

Un entero aleatorio criptográfico de tipo T.