#include
int shmget(key_t key, size_t size, int oflag)
返回乙個共享區識別符號
key既可以是ftok返回值,也可以是ipc_private
size以位元組為單位指定記憶體區大小
#include
void *shmat(int shmid, const
void *shmaddr, int flag)
連線共享記憶體識別符號為shmid的共享記憶體,連線成功後把共享記憶體區物件對映到呼叫程序的位址空間,隨後可像本地空間一樣訪問
如果shmaddr是乙個空指標,那麼系統呼叫者選擇位址
如果shmaddr是乙個非空指標,那麼返回位址取決於呼叫者是否給flag指定shd_rnd:
如果shd_rnd沒有指定,那麼相應的共享記憶體區附接到由shmaddr引數指定的位址
如果shd_rnd指定了,那麼相應的共享記憶體區附接到shmaddr引數指定的位址向下捨入乙個shmlba常值(lba:低端邊界位址)
#include
int shmdt(const
void *shmaddr);
斷開共享記憶體連線
#include
int shmctl(int shmid, int cmd, struct shmid_ds *buf);
cmd有如下取值:
ipc_stat:得到共享記憶體的狀態,把共享記憶體的shmid_ds結構複製到buf中
ipc_set:改變共享記憶體的狀態,把buf所指的shmid_ds結構中的uid、gid、mode複製到共享記憶體的shmid_ds結構內
ipc_rmid:刪除這片共享記憶體
system v共享記憶體區最新常用的函式呼叫是:
shmget獲取乙個識別符號
shmat把乙個共享記憶體區附接到呼叫程序的位址空間
以乙個ipc_stat命令呼叫shmctl:獲取乙個已存在共享記憶體區的大小
以乙個ipc_rmid命令呼叫shmctl:刪除乙個共享記憶體區物件
UNPv1第十四章 Unix域協議
unix域協議並不是乙個實際的協議族,它只是在同一臺主機上進行客戶 伺服器通訊時,使用與在不同主機上的客戶和伺服器間通訊時相同的api 套介面或xti 的一種方法。當客戶和伺服器在同一臺主機上時,unix域協議是ipc通訊方式的一種替代品。unix域提供了兩種型別的套介面 位元組流套介面 與tcp類...
第十四章約束
約束 constraint 是一種保證資料完整性的規則。約束設定在單個字段或者多個字段組合上,寫入這些欄位的行資料必須要符合約束的規則 約束的五種型別 not null 非空約束,指定某列的所有行資料不能包含空值 unique 唯一性約束,指定列或者列的組合的所有行資料必須唯一 primary ke...
第十四章 約束
第十四章 約束 練習1 1.學校有乙個選課系統,其中包括如下關係模式 系 系編號 主鍵,系名稱 唯一鍵,系主任 非空約束,系所在校去 取值範圍只能在南湖校區和渾南校區 create table xi xi no varchar2 10 primary key,xi name varchar2 10 ...