summaryrefslogtreecommitdiffstatshomepage
path: root/exercises
diff options
context:
space:
mode:
authorChris Boesch <chrboesch@noreply.codeberg.org>2023-02-16 18:33:06 +0100
committerChris Boesch <chrboesch@noreply.codeberg.org>2023-02-16 18:33:06 +0100
commitbb956254774ed022f29c70e98f7ca95c28f2c86f (patch)
tree644145ad4bf822bbf2c85bdf78d9552bae52eb80 /exercises
parentdce731a0ece693a06615e8f8f1ac7ee0db911360 (diff)
try 'write' that works on mac, but I didn't know if it works on windows
Diffstat (limited to 'exercises')
-rw-r--r--exercises/093_hello_c.zig20
1 files changed, 5 insertions, 15 deletions
diff --git a/exercises/093_hello_c.zig b/exercises/093_hello_c.zig
index d234165..1877e04 100644
--- a/exercises/093_hello_c.zig
+++ b/exercises/093_hello_c.zig
@@ -42,29 +42,19 @@ const std = @import("std");
// new the import for C
const c = @cImport({
-
- // we use "standard input/output" from C
- @cInclude("stdio.h");
+ @cInclude("unistd.h");
});
pub fn main() void {
- // Due to a current limitation in the Zig compiler,
- // we need a small workaround to make this exercise
- // work on mac-os.
- const builtin = @import("builtin");
- const stderr = switch (builtin.target.os.tag) {
- .macos => 1,
- else => c.stderr,
- };
-
// In order to output a text that can be evaluated by the
// Zig Builder, we need to write it to the Error output.
// In Zig we do this with "std.debug.print" and in C we can
- // specify the file to write to, i.e. "standard error (stderr)".
+ // specify the file descriptor i.e. 2 for error console.
//
- // Ups, something is wrong...
- const c_res = fprintf(stderr, "Hello C from Zig!");
+ // In this case we use 'write' to output 17 chars,
+ // but something is missing...
+ const c_res = write(2, "Hello C from Zig!", 17);
// let's see what the result from C is:
std.debug.print(" - C result ist {d} chars\n", .{c_res});