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 | |
| parent | 1be35411cf23c1b8cc909c2f2e1d1030e2f5015a (diff) | |
| download | probe-c7cd286be9d4ede3129a309e2668686be4646f07.tar.gz | |
Added saving of struct to file in Zig and reading it back
| -rw-r--r-- | README.md | 3 | ||||
| -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 | |||
| -rw-r--r-- | zig-struct-json/Makefile (renamed from zig-structs/Makefile) | 0 | ||||
| -rw-r--r-- | zig-struct-json/player.json (renamed from zig-structs/player.json) | 0 | ||||
| -rw-r--r-- | zig-struct-json/player.zig (renamed from zig-structs/player.zig) | 0 | ||||
| -rw-r--r-- | zig-struct-json/read.zig (renamed from zig-structs/read.zig) | 0 | ||||
| -rw-r--r-- | zig-struct-json/write.zig (renamed from zig-structs/write.zig) | 0 |
9 files changed, 39 insertions, 1 deletions
@@ -24,7 +24,7 @@ running it. | [c-structs](./c-structs) | clang-17 | Saves and reads structs in/from binary files. | | [zig-c-interop](./zig-c-interop) | zig-0.11.0 | Uses functions written in C from Zig code. | | [zig-ppm](./zig-ppm) | zig-0.11.0 | Creates an image with random pixels in PPM image format. | -| [zig-structs](./zig-structs) | zig-0.11.0 | Serialization of a struct into JSON and then reading it back. | +| [zig-struct-json](./zig-struct-json) | zig-0.11.0 | Serialization of a struct into JSON and then reading it back. | | [zig-telnet](./zig-telnet) | zig-0.11.0 | Connects to Redis server like it is a basic telnet server. | | [zig-x11](./zig-x11) | zig-0.11.0 | Uses X11 to create a basic window without any bindings needed. | | [zig-http](./zig-http) | zig-0.11.0 | Basic example of a HTTP 1.1 server without any routing etc. | @@ -34,6 +34,7 @@ running it. | [zig-os-props](./zig-os-props) | zig-0.11.0 | Detects properties of the target operating system. | | [zig-tlv-encoding](./zig-tlv-encoding) | zig-0.13.0 | Naive implementation of TLV encoding in Zig. | | [zig-embed](./zig-embed) | zig-0.13.0 | Embedding external resources in compiled binary. | +| [zig-struct-bin](./zig-struct-bin) | zig-0.13.0 | Save a struct into binary file and then reading it back. | ## License 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 diff --git a/zig-structs/Makefile b/zig-struct-json/Makefile index 9afb087..9afb087 100644 --- a/zig-structs/Makefile +++ b/zig-struct-json/Makefile diff --git a/zig-structs/player.json b/zig-struct-json/player.json index 16cdeb6..16cdeb6 100644 --- a/zig-structs/player.json +++ b/zig-struct-json/player.json diff --git a/zig-structs/player.zig b/zig-struct-json/player.zig index 6cbd354..6cbd354 100644 --- a/zig-structs/player.zig +++ b/zig-struct-json/player.zig diff --git a/zig-structs/read.zig b/zig-struct-json/read.zig index 95d6390..95d6390 100644 --- a/zig-structs/read.zig +++ b/zig-struct-json/read.zig diff --git a/zig-structs/write.zig b/zig-struct-json/write.zig index 9f58489..9f58489 100644 --- a/zig-structs/write.zig +++ b/zig-struct-json/write.zig |
