shmget(2) System Calls Manual shmget(2) shmget - System V (libc -lc) #include int shmget(key_t key, size_t size, int shmflg); shmget() System V key. ( shmflg key IPC_PRIVATE) . size PAGE_SIZE key IPC_PRIVATE key IPC_PRIVATE key IPC_CREAT shmflg. shmflg IPC_CREAT IPC_EXCL key shmget() errno EEXIST. ( O_CREAT | O_EXCL open(2).) shmflg : IPC_CREAT . shmget() key . IPC_EXCL IPC_CREAT . . SHM_HUGETLB ( Linux 2.6) "". Documentation/admin-guide/mm/hugetlbpage.rst . SHM_HUGE_2MB SHM_HUGE_1GB ( Linux 3.8) SHM_HUGETLB hugetlb (2 1 ) hugetlb . 2 SHM_HUGE_SHIFT. : #define SHM_HUGE_2MB (21 << SHM_HUGE_SHIFT) #define SHM_HUGE_1GB (30 << SHM_HUGE_SHIFT) mmap(2). SHM_NORESERVE ( Linux 2.6.15) MAP_NORESERVE mmap(2). . . SIGSEGV . /proc/sys/vm/overcommit_memory proc_sys_vm(5). 9 shmflg . mode open(2). . shmid_ds ( shmctl(2)) : o shm_perm.cuid shm_perm.uid . o shm_perm.cgid shm_perm.gid . o 9 shm_perm.mode 9 shmflg. o shm_segsz size. o shm_lpid shm_nattch shm_atime shm_dtime 0. o shm_ctime . . . -1 errno . EACCES CAP_IPC_OWNER IPC . EEXIST IPC_CREAT IPC_EXCL shmflg key. EINVAL size SHMMIN SHMMAX. EINVAL key size . ENFILE . ENOENT key IPC_CREAT. ENOMEM . ENOSPC (SHMMNI) size (SHMALL). EPERM SHM_HUGETLB ( CAP_IPC_LOCK) hugetlb_shm_group /proc/sys/vm/hugetlb_shm_group proc_sys_vm(5). POSIX.1-2024. SHM_HUGETLB SHM_NORESERVE . POSIX.1-2001 SVr4. IPC_PRIVATE key_t. key 9 shmflg . shmget() : SHMALL . /proc/sys/kernel/shmall. 3.16 : ULONG_MAX - 2^24 ( 32- 64-) . ULONG_MAX . ULONG_MAX. 2.4 3.15 : SHMMAX / PAGE_SIZE * (SHMMNI / 16) SHMMAX SHMMNI ( ) 8 . SHMMAX . /proc/sys/kernel/shmmax. 3.16 : ULONG_MAX - 2^24 ( 32- 64-) . SHMALL ( ULONG_MAX). 2.2 3.15 0x2000000 (32 ). : i386 2.8 x86-64 127 . SHMMIN : ( 1 PAGE_SIZE ). SHMMNI . 2.2 128 2.4 4096. /proc/sys/kernel/shmmni. (SHMSEG). 2.3.30 EIDRM shmget() . IPC_PRIVATE IPC_NEW . shmop(2). memfd_create(2) shmat(2) shmctl(2) shmdt(2) ftok(3) capabilities(7) shm_overview(7) sysvipc(7) 3 . . : . 6.18 8 2026 shmget(2)