I’m trying to use the Writer.print function, but upon flushing I get this segfault:

Segmentation fault at address 0x79
/nix/store/d0kkd93aji32klh4npp5fzq82lb84p85-zig-0.16.0/lib/zig/std/Io.zig:453:29: 0x1039fb3 in operate (std.zig)
return io.vtable.operate(io.userdata, operation);
^
/nix/store/d0kkd93aji32klh4npp5fzq82lb84p85-zig-0.16.0/lib/zig/std/Io/File.zig:614:27: 0x11df519 in writeStreaming (std.zig)
return (try io.operate(.{ .file_write_streaming = .{
^
/nix/store/d0kkd93aji32klh4npp5fzq82lb84p85-zig-0.16.0/lib/zig/std/Io/File/Writer.zig:126:36: 0x11defb6 in drainStreaming (std.zig)
const n = w.file.writeStreaming(io, header, data, splat) catch |err| {
^
/nix/store/d0kkd93aji32klh4npp5fzq82lb84p85-zig-0.16.0/lib/zig/std/Io/File/Writer.zig:93:63: 0x11de9cc in drain (std.zig)
.streaming, .streaming_simple => return drainStreaming(w, data, splat),
^
/nix/store/d0kkd93aji32klh4npp5fzq82lb84p85-zig-0.16.0/lib/zig/std/Io/Writer.zig:319:39: 0x1036a32 in defaultFlush (std.zig)
while (w.end != 0) _ = try drainFn(w, &.{“”}, 1);
^
/nix/store/d0kkd93aji32klh4npp5fzq82lb84p85-zig-0.16.0/lib/zig/std/Io/Writer.zig:313:26: 0x112bb93 in flush (std.zig)
return w.vtable.flush(w);
^
/home/oskar/Dev/raytracing-zig/src/main.zig:10:21: 0x11d7434 in main (main.zig)
try writer.flush();
^
/nix/store/d0kkd93aji32klh4npp5fzq82lb84p85-zig-0.16.0/lib/zig/std/start.zig:737:30: 0x11d7eee in callMain (std.zig)
return wrapMain(root.main(.{
^
/nix/store/d0kkd93aji32klh4npp5fzq82lb84p85-zig-0.16.0/lib/zig/std/start.zig:190:5: 0x11d7201 in _start (std.zig)
asm volatile (switch (native_arch) {
^
run
└─ run exe raytracing_zig failure
error: process terminated with signal ABRT
failed command: /home/oskar/Dev/raytracing-zig/zig-out/bin/raytracing_zig

Build Summary: 3/5 steps succeeded (1 failed)
run transitive failure
└─ run exe raytracing_zig failure

My program looks like this:

const std = @import(“std”);

pub fn main(init: std.process.Init) !void {
const io = init.io;

var buf: [50]u8 = undefined;
const stdout = std.Io.File.stdout().writer(io, &buf);
var writer = stdout.interface;
try writer.print("hi {}", .{2});
try writer.flush();
}

Previously I used writeStreamingAll, which worked fine, but I needed a function that also formatted.
I’d be really grateful for any help regarding this error

Not sure if this fixes your Error but it should be var writer = &stdout.interface;
Otherwise your are copying the interface i think.