@@ -5195,6 +5195,23 @@ pub fn getFdPath(fd: fd_t, out_buffer: *[MAX_PATH_BYTES]u8) RealPathError![]u8 {
51955195 const len = mem .indexOfScalar (u8 , out_buffer [0.. ], @as (u8 , 0 )) orelse MAX_PATH_BYTES ;
51965196 return out_buffer [0.. len ];
51975197 },
5198+ .netbsd = > {
5199+ if (comptime builtin .os .version_range .semver .max .order (.{ .major = 10 , .minor = 0 }) == .lt ) {
5200+ @compileError ("querying for canonical path of a handle is unsupported on this host" );
5201+ }
5202+ @memset (out_buffer , 0 , MAX_PATH_BYTES );
5203+ switch (errno (system .fcntl (fd , F .GETPATH , out_buffer ))) {
5204+ .SUCCESS = > {},
5205+ .ACCES = > return error .AccessDenied ,
5206+ .BADF = > return error .FileNotFound ,
5207+ .NOENT = > return error .FileNotFound ,
5208+ .NOMEM = > return error .SystemResources ,
5209+ .RANGE = > return error .NameTooLong ,
5210+ else = > | err | return unexpectedErrno (err ),
5211+ }
5212+ const len = mem .indexOfScalar (u8 , out_buffer [0.. ], @as (u8 , 0 )) orelse MAX_PATH_BYTES ;
5213+ return out_buffer [0.. len ];
5214+ },
51985215 else = > @compileError ("querying for canonical path of a handle is unsupported on this host" ),
51995216 }
52005217}
0 commit comments