mirror of
https://github.com/mutouyun/cpp-ipc.git
synced 2025-12-06 16:56:45 +08:00
44 lines
1.1 KiB
C++
44 lines
1.1 KiB
C++
/**
|
|
* @file libipc/mmap.h
|
|
* @author mutouyun (orz@orzz.org)
|
|
* @brief Define the methods of memory-mapped file I/O
|
|
* @date 2022-04-17
|
|
*/
|
|
#pragma once
|
|
|
|
#include <string>
|
|
#include <cstddef>
|
|
|
|
#include "libimp/export.h"
|
|
#include "libimp/result.h"
|
|
|
|
#include "libipc/def.h"
|
|
|
|
LIBIPC_NAMESPACE_BEG_
|
|
|
|
struct mmap_handle;
|
|
using mmap_t = mmap_handle *;
|
|
|
|
/**
|
|
* @brief Creates a new mapping in the virtual address space of the calling process.
|
|
*/
|
|
LIBIMP_EXPORT ::LIBIMP_::result<mmap_t> mmap_open(std::string const &file,
|
|
std::size_t size = 0,
|
|
prot::type = prot::read | prot::write) noexcept;
|
|
|
|
/**
|
|
* @brief Close the memory mapping handle.
|
|
*/
|
|
LIBIMP_EXPORT ::LIBIMP_::result_code mmap_close(mmap_t) noexcept;
|
|
|
|
/**
|
|
* @brief Synchronize a file with a memory map.
|
|
*/
|
|
LIBIMP_EXPORT ::LIBIMP_::result_code mmap_sync(mmap_t) noexcept;
|
|
|
|
LIBIMP_EXPORT void * mmap_get (mmap_t) noexcept;
|
|
LIBIMP_EXPORT std::size_t mmap_size(mmap_t) noexcept;
|
|
LIBIMP_EXPORT std::string mmap_file(mmap_t) noexcept;
|
|
|
|
LIBIPC_NAMESPACE_END_
|