65 std::pair<uint8_t*, intptr_t> failure_pair{
nullptr, -1};
67 if (fstat(fd, &st) != 0) {
70 intptr_t file_size = st.st_size;
71 uint8_t* ptr = (uint8_t*)malloc(file_size);
73 size_t bytes_left = file_size;
75 while (bytes_left > 0) {
76 ssize_t bytes_read =
HANDLE_EINTR(read(fd, &ptr[offset], bytes_left));
81 bytes_left -= bytes_read;
83 return std::pair<uint8_t*, intptr_t>(ptr, file_size);