authorgravatar for hello@nektro.netMeghan Denny <hello@nektro.net> 2026-05-05 03:47:57 -07:00
committergravatar for hello@nektro.netMeghan Denny <hello@nektro.net> 2026-05-05 03:47:57 -07:00
log3c37872744be60c07add8560c4c0af4e8daf7fc5
tree49b02f1f70e9c09323d6845b85fc333070d8558c
parent6ce916cfdeb75188010f3bab238dd5ab37952257
signaturebadge-check Signed by SSH key SHA256:4hHJbtBRU58AYXwjL7fkz2fnQHdiye8x1QpTCQ0sHNw

add mktemp


1 files changed, 11 insertions(+), 0 deletions(-)

nfs.zig+11
......@@ -55,3 +55,14 @@ pub fn mkdtemp() !Dir {
5555 const path = template[0 .. template.len - 1 :0];
5656 return cwd().makeOpenPath(path, .{});
5757}
58
59pub fn mktemp(flags: Dir.CreateFlags) !File {
60 var template = "/tmp/tmp.XXXXXXXXXX\x00".*;
61 const letters = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789";
62 var buf: [10]u8 = @splat(0);
63 const rand = try sys.getrandom(&buf, 0);
64 if (rand.len != 10) return error.EAGAIN;
65 for (template[9..][0..10], rand) |*a, b| a.* = letters[b % 62];
66 const path = template[0 .. template.len - 1 :0];
67 return cwd().createFile(path, flags);
68}