diff options
| author | Mitja Felicijan <mitja.felicijan@gmail.com> | 2024-09-19 14:01:34 +0200 |
|---|---|---|
| committer | Mitja Felicijan <mitja.felicijan@gmail.com> | 2024-09-19 14:01:34 +0200 |
| commit | c7cd286be9d4ede3129a309e2668686be4646f07 (patch) | |
| tree | 98e0767894d7fc816a37dca55ec73bafddc1bee5 /zig-struct-bin | |
| parent | 1be35411cf23c1b8cc909c2f2e1d1030e2f5015a (diff) | |
| download | probe-c7cd286be9d4ede3129a309e2668686be4646f07.tar.gz | |
Added saving of struct to file in Zig and reading it back
Diffstat (limited to 'zig-struct-bin')
| -rw-r--r-- | zig-struct-bin/Makefile | 2 | ||||
| -rw-r--r-- | zig-struct-bin/main.zig | 35 | ||||
| -rw-r--r-- | zig-struct-bin/out.bin | bin | 0 -> 8 bytes |
3 files changed, 37 insertions, 0 deletions
diff --git a/zig-struct-bin/Makefile b/zig-struct-bin/Makefile new file mode 100644 index 0000000..98beea6 --- /dev/null +++ b/zig-struct-bin/Makefile @@ -0,0 +1,2 @@ +default: + zig test 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 {} diff --git a/zig-struct-bin/out.bin b/zig-struct-bin/out.bin Binary files differnew file mode 100644 index 0000000..44ae9d8 --- /dev/null +++ b/zig-struct-bin/out.bin |
