Exit Status
Command-line programs should set their exit status to indicate success or failure.
In Zig, we can just return the exit status from
main.
const std = @import("std");
pub fn main() u8 {
return 123;
}$ zig run exit.zig
$ echo $?
123
We can also use std.process.exit to exit with a given exit status.
const std = @import("std");
const print = std.debug.print;
pub fn main() void {
print("in main\n", .{});
defer print("deferred\n", .{});
std.process.exit(123);
}It exits immediately, without running deferred statements.
$ zig build-exe exit-2.zig
$ ./exit-2; echo $?
in main
123
Next example: Async.