private static byte[] readBytes(MemorySegment ptr, long len) {
if (ptr == null || ptr.address() == 0) {
return new byte[0];
}
byte[] bytes = new byte[(int) len];
MemorySegment.copy(ptr, ValueLayout.JAVA_BYTE.byteSize() * 0, bytes, 0, (int) len);
return bytes;
}