From c7cd286be9d4ede3129a309e2668686be4646f07 Mon Sep 17 00:00:00 2001 From: Mitja Felicijan Date: Thu, 19 Sep 2024 14:01:34 +0200 Subject: Added saving of struct to file in Zig and reading it back --- zig-struct-bin/main.zig | 35 +++++++++++++++++++++++++++++++++++ 1 file changed, 35 insertions(+) create mode 100644 zig-struct-bin/main.zig (limited to 'zig-struct-bin/main.zig') diff --git a/zig-struct-bin/main.zig b/zig-struct-bin/main.zig new file mode 100644 index 0000000..4193242 --- /dev/null +++ b/zig-struct-bin/main.zig @@ -0,0 +1,35 @@ +const std = @import("std"); + +const Sample = packed struct { + type: u16, + machine: u16, + version: u32, +}; + +test "write" { + const s = Sample{ + .type = 54, + .machine = 72, + .version = 132, + }; + + std.debug.print("{}\n", .{s}); + + var file = try std.fs.cwd().createFile("out.bin", .{}); + defer file.close(); + + try file.writeAll(std.mem.asBytes(&s)); +} + +test "read" { + var file = try std.fs.cwd().openFile("./out.bin", .{}); + defer file.close(); + + var buffer: [8]u8 = undefined; + _ = try file.read(buffer[0..]); + + const s: *Sample = @ptrCast(@alignCast(&buffer)); + std.debug.print("{}\n", .{s}); +} + +pub fn main() void {} -- cgit v1.2.3