Posted on 2009-07-14 21:49
Prayer 閱讀(876)
評(píng)論(0) 編輯 收藏 引用 所屬分類:
LINUX/UNIX/AIX
在IPC中,我們經(jīng)常用用key_t的值來創(chuàng)建或者打開信號(hào)量,共享內(nèi)存和消息隊(duì)列。這個(gè)在IPC的環(huán)境中十分的重要,比如說,服務(wù)器創(chuàng)建了一個(gè)消息隊(duì)列,等待客戶機(jī)發(fā)送請(qǐng)求。那么如何創(chuàng)建或者打開已有的消息隊(duì)列呢?一般而言,我們對(duì)于服務(wù)器使用的路徑和項(xiàng)目id(proj_id)是已知的,所以客戶機(jī)可以獲取相同的key來打開 消息隊(duì)列并進(jìn)行操作。下面就是ftok的使用原型:
# include <sys/types.h>
# include <sys/ipc.h>
key_t ftok(const char *pathname, int proj_id);
注意:
1)pathname一定要在系統(tǒng)中存在
2)pathname一定是使用進(jìn)程能夠訪問的
3)proj_id是一個(gè)1-255之間的一個(gè)整數(shù)值,典型的值是一個(gè)ASCII值。
當(dāng)成功執(zhí)行的時(shí)候,一個(gè)key_t值將會(huì)被返回,否則-1被返回。我們可以使用errno來確定具體的錯(cuò)誤信息如果我們很懶惰的話,不妨就使用perror函數(shù)來答應(yīng)對(duì)應(yīng)的出錯(cuò)字符信息。
下面的程序簡單的演示和打印如何使用ftok及其對(duì)應(yīng)值