所有共享内存块的大小都必须是系统页面大小的整数倍。
----------------------不知那门的定律
一、 共享内存编程的两种标准
在Unix编程环境下,存在两种不同的共享内存编程标准:一是POSIX标准,二是System V标准。这两套标准提供的接口函数分别如下。
POSIX标准:
int shm_open(const char *name, int oflag, mode_t mode);
int shm_unlink(const char *name);
int ftruncate(int fd, off_t length);
System V标准:
int shmget(key_t key, int size, int shmflg);
void *shmat(int shmid, const void *shmaddr, int shmflg);
int shmdt(const void *shmaddr);
int shmctl(int shmid, int cmd, struct shmid_ds *buf);
由于POSIX标准比较通用,并且提供的接口函数也比较容易使用,一般情况下推荐使用POSIX标准进行共享内存编程。