mmap2(2) - wariua/manpages-ko GitHub Wiki
mmap2 - νμΌμ΄λ μ₯μΉλ₯Ό λ©λͺ¨λ¦¬λ‘ λ§΅ νκΈ°
#include <sys/mman.h>
void *mmap2(void *addr, size_t length, int prot,
int flags, int fd, off_t pgoffset);
μλ§ μ°ΎμΌλ €λ μμ€ν νΈμΆμ΄ μλ κ²μ΄λ€. μ΄ μμ€ν νΈμΆμ λΆλ₯΄λ glibc λνΌ ν¨μλ₯Ό κΈ°μ νλ mmap(2)μ 보λΌ.
mmap2()
μμ€ν
νΈμΆμ mmap(2)κ³Ό κ°μ μΈν°νμ΄μ€λ₯Ό μ 곡νλ λ§μ§λ§ μΈμκ° (mmap(2)μμμ²λΌ λ°μ΄νΈ λ¨μκ° μλλΌ) 4096λ°μ΄νΈ λ¨μλ‘ νμΌ λ΄ μ€νμ
μ μ§μ νλ€. κ·Έλμ μμ©μμ 32λΉνΈ off_t
λ₯Ό μ¬μ©ν΄ ν° (μ΅λ 2^44λ°μ΄νΈ) νμΌμ λ§΅ ν μ μκ² λλ€.
μ±κ³΅ μ mmap2()
λ λ§΅ ν μμμ λν ν¬μΈν°λ₯Ό λ°ννλ€. μ€λ₯ μ -1μ λ°ννλ©° errno
λ₯Ό μ μ ν μ€μ νλ€.
EFAULT
- μ¬μ©μ 곡κ°μΌλ‘λΆν° λ°μ΄ν°λ₯Ό κ°μ Έμ€λ λ° λ¬Έμ λ°μ.
EINVAL
- (νμ΄μ§ ν¬κΈ°κ° 4096λ°μ΄νΈκ° μλ λ€μν νλ«νΌμμ)
offset * 4096
μ΄ μμ€ν νμ΄μ§ ν¬κΈ°μ λ°°μκ° μλλ€.
mmap2()
κ° mmap(2)μμ κΈ°μ νλ μ€λ₯λ€ μ€ νλλ₯Ό λ°νν μλ μλ€.
리λ
μ€ 2.3.31λΆν° mmap2()
κ° μ¬μ© κ°λ₯νλ€.
μ΄ μμ€ν νΈμΆμ 리λ μ€ μ μ©μ΄λ€.
μ΄ μμ€ν
νΈμΆμ΄ μ‘΄μ¬νλ νλ«νΌμμλ glibcμ mmap()
λνΌ ν¨μκ° mmap(2) μμ€ν
νΈμΆ λμ μ΄ μμ€ν
νΈμΆμ μ€ννλ€.
x86-64μλ μ΄ μμ€ν νΈμΆμ΄ μ‘΄μ¬νμ§ μλλ€.
ia64μμλ offset
μ λ¨μκ° μ€μ λ‘λ 4096λ°μ΄νΈκ° μλλΌ μμ€ν
νμ΄μ§ ν¬κΈ°μ΄λ€.
getpagesize(2), mmap(2), mremap(2), msync(2), shm_open(3)
2017-09-15