所有共享內存塊的大小都必須是系統頁面大小的整數倍。
----------------------不知那門的定律
一、 共享內存編程的兩種標準
在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標準進行共享內存編程。