Execute a program from zig

Functions from std.os moved to std.posix.

Probably what you want is not the unix specific exec that replaces the current process, but the spawn, spawnAndWait, or run function of std.process.Child

Test Example:
test.zig

const std = @import("std");

test {
    const argv = [_][]const u8{ "echo", "Hello", "World" };
    var child = std.process.Child.init(&argv, std.testing.allocator);
    try child.spawn();
    const exit_code = child.wait();
    try std.testing.expectEqual(exit_code, std.process.Child.Term{ .Exited = 0 });
}

Run as:

> zig test test.zig
Hello World
All 1 tests passed.
4 Likes