108 if (size < offset + writeSize)
110 throw std::runtime_error(
"Attempt to write beyond past");
113 void * mmapped = mmap(0, size, PROT_READ | PROT_WRITE, MAP_SHARED,
fd, 0);
114 if (mmapped == MAP_FAILED)
117 throw std::runtime_error(
"Mmap failed");
120 memcpy((
void*)((
char*)mmapped + offset), data, writeSize);
122 if (munmap(mmapped, size) == -1)
125 throw std::runtime_error(
"Munmap failed");