mlock(2) System Calls Manual mlock(2) mlock, mlock2, munlock, mlockall, munlockall - (libc -lc) #include int mlock(size_t size; const void addr[size], size_t size); int mlock2(size_t size; const void addr[size], size_t size, unsigned int flags); int munlock(size_t size; const void addr[size], size_t size); int mlockall(int flags); int munlockall(void); mlock() mlock2() mlockall() RAM . munlock() munlockall() . . mlock() mlock2() munlock() mlock() addr size . RAM RAM . mlock2() addr size . flags. flags 0 : MLOCK_ONFAULT . flags 0 mlock2() mlock(). munlock() addr size . . mlockall() munlockall() mlockall() . . RAM RAM . flags OR : MCL_CURRENT . MCL_FUTURE . . MCL_ONFAULT ( Linux 4.4) MCL_CURRENT MCL_FUTURE . ( MCL_CURRENT) ( MCL_FUTURE) . MCL_CURRENT mlockall() . MCL_FUTURE . MCL_ONFAULT MCL_CURRENT MCL_FUTURE . MCL_FUTURE ( mmap(2) sbrk(2) malloc(3)) ( ). : SIGSEGV . munlockall() . 0. -1 errno . EAGAIN (mlock() mlock2() munlock()) . EINVAL (mlock() mlock2() munlock()) addr+size addr ( ). EINVAL (mlock2()) flags . EINVAL (mlockall()) flags MCL_ONFAULT MCL_FUTURE MCL_CURRENT. EINVAL ( ) addr . ENOMEM (mlock(), mlock2(), munlock()) . ENOMEM (mlock(), mlock2(), munlock()) ( ) . ( : .) ENOMEM ( 2.6.9 ) RLIMIT_MEMLOCK . (CAP_IPC_LOCK). ENOMEM ( 2.4 ) . EPERM (CAP_IPC_LOCK) . EPERM (munlockall()) ( 2.6.8 ) (CAP_IPC_LOCK). mlock() mlock2() munlock() addr . POSIX.1 mlock() munlock() addr . VmLck /proc/pid/status PID mlock() mlock2() mlockall() mmap(2) MAP_LOCKED. mlock() munlock() mlockall() munlockall() POSIX.1-2024. mlock2() . POSIX mlock() munlock() _POSIX_MEMLOCK_RANGE PAGESIZE ( ) sysconf(_SC_PAGESIZE). POSIX mlockall() munlockall() _POSIX_MEMLOCK 0. ( sysconf(3).) mlock() munlock() mlockall() munlockall() SVr4, POSIX.1-1996. mlock2() 4.4 glibc 2.27. : . . sched_setscheduler(2). . . ( .) mlockall() . () . . . fork(2) () execve(2) . mlockall() MCL_FUTURE MCL_FUTURE | MCL_ONFAULT fork(2) execve(2). fork(2) . . fork(2) mlockall() mlock()-- . munmap(2). mlock() mlock2() mlockall() munlock() munlockall(). . mlockall() MCL_FUTURE MCL_FUTURE. mlock2() MLOCK_ONFAULT mlockall() MCL_ONFAULT () . . 2.6.8 (CAP_IPC_LOCK) RLIMIT_MEMLOCK . 2.6.9 RLIMIT_MEMLOCK . 4.8 ( CAP_IPC_LOCK) addr size . " " RLIMIT_MEMLOCK mlock() mlock2() . 4.9. 2.4 2.4.17 mlockall() MCL_FUTURE fork(2). 2.4.18. 2.6.9 mlockall(MCL_FUTURE) ( CAP_IPC_LOCK UID ) ( mmap(2) brk(2)) RLIMIT_MEMLOCK. mincore(2) mmap(2) setrlimit(2) shmctl(2) sysconf(3) proc(5) capabilities(7) # 3 . . : . 6.18 11 2026 mlock(2)