Cavil-Matcher
view release on metacpan or search on metacpan
src/matcher.cc view on Meta::CPAN
MappedFile::~MappedFile() {
if (_data && _data != MAP_FAILED) munmap((void*)_data, _size);
if (_fd >= 0) close(_fd);
}
bool MappedFile::map(const std::string& path) {
_fd = open(path.c_str(), O_RDONLY);
if (_fd < 0) return false;
struct stat st;
if (fstat(_fd, &st) != 0 || st.st_size <= 0) {
close(_fd);
_fd = -1;
return false;
}
void* p = mmap(nullptr, (size_t)st.st_size, PROT_READ, MAP_SHARED, _fd, 0);
if (p == MAP_FAILED) {
close(_fd);
_fd = -1;
return false;
}
( run in 1.595 second using v1.01-cache-2.11-cpan-14f38c9f855 )