отображать или отменять отображение файлов или устройств в память (map or unmap files or devices into memory)
Ошибки (Error)
EACCES
A file descriptor refers to a non-regular file. Or a file
mapping was requested, but fd is not open for reading. Or
MAP_SHARED
was requested and PROT_WRITE
is set, but fd is
not open in read/write (O_RDWR
) mode. Or PROT_WRITE
is
set, but the file is append-only.
EAGAIN
The file has been locked, or too much memory has been
locked (see setrlimit(2)).
EBADF
fd is not a valid file descriptor (and MAP_ANONYMOUS
was
not set).
EEXIST MAP_FIXED_NOREPLACE
was specified in flags, and the range
covered by addr and length clashes with an existing
mapping.
EINVAL
We don't like addr, length, or offset (e.g., they are too
large, or not aligned on a page boundary).
EINVAL
(since Linux 2.6.12) length was 0.
EINVAL
flags contained none of MAP_PRIVATE
, MAP_SHARED
, or
MAP_SHARED_VALIDATE
.
ENFILE
The system-wide limit on the total number of open files
has been reached.
ENODEV
The underlying filesystem of the specified file does not
support memory mapping.
ENOMEM
No memory is available.
ENOMEM
The process's maximum number of mappings would have been
exceeded. This error can also occur for munmap
(), when
unmapping a region in the middle of an existing mapping,
since this results in two smaller mappings on either side
of the region being unmapped.
ENOMEM
(since Linux 4.7) The process's RLIMIT_DATA
limit,
described in getrlimit(2), would have been exceeded.
EOVERFLOW
On 32-bit architecture together with the large file
extension (i.e., using 64-bit off_t): the number of pages
used for length plus number of pages used for offset would
overflow unsigned long (32 bits).
EPERM
The prot argument asks for PROT_EXEC
but the mapped area
belongs to a file on a filesystem that was mounted no-
exec.
EPERM
The operation was prevented by a file seal; see fcntl(2).
EPERM
The MAP_HUGETLB
flag was specified, but the caller was not
privileged (did not have the CAP_IPC_LOCK
capability) and
is not a member of the sysctl_hugetlb_shm_group group; see
the description of /proc/sys/vm/sysctl_hugetlb_shm_group
in
ETXTBSY
MAP_DENYWRITE
was set but the object specified by fd is
open for writing.
Use of a mapped region can result in these signals:
SIGSEGV
Attempted write into a region mapped as read-only.
SIGBUS
Attempted access to a page of the buffer that lies beyond
the end of the mapped file. For an explanation of the
treatment of the bytes in the page that corresponds to the
end of a mapped file that is not a multiple of the page
size, see NOTES.