Hacker News new | ask | show | jobs
by fragmede 602 days ago
> In the case of an error in the main function, the process will exit with 1, otherwise 0. The main function can also return a value directly (return type u8 / !u8).

We know that by convention, but how do we know that from

    pub fn main() !void {
If if write

    pub fn foo() !void {
will that function also get to return a u8?

Also, what happened to argv/argc?

1 comments

> will that function also get to return a u8?

No, the main function (the entry point of the entire program) is special cased. Have a look at the source code. There you can see it's calling the user defined main function and handling its return value / error.

https://github.com/ziglang/zig/blob/2d888a8e639856e8cb6e4c6f...

> Also, what happened to argv/argc?

You can access argv with std.os.argv which is a slice of null terminated strings. It's better to go with std.process.argsAlloc though (requires an allocation but works on all supported platforms).