linux 中ftok函數(shù)的用法
成都創(chuàng)新互聯(lián)服務(wù)項目包括建華網(wǎng)站建設(shè)、建華網(wǎng)站制作、建華網(wǎng)頁制作以及建華網(wǎng)絡(luò)營銷策劃等。多年來,我們專注于互聯(lián)網(wǎng)行業(yè),利用自身積累的技術(shù)優(yōu)勢、行業(yè)經(jīng)驗、深度合作伙伴關(guān)系等,向廣大中小型企業(yè)、政府機構(gòu)等提供互聯(lián)網(wǎng)行業(yè)的解決方案,建華網(wǎng)站推廣取得了明顯的社會效益與經(jīng)濟效益。目前,我們服務(wù)的客戶以成都為中心已經(jīng)輻射到建華省份的部分城市,未來相信會繼續(xù)擴大服務(wù)區(qū)域并繼續(xù)獲得客戶的支持與信任!1、函數(shù)作用: 系統(tǒng)建立IPC通訊(如消息隊列、共享內(nèi)存時)必須指定一個ID值。通常情況下,該id值通過ftok函數(shù)得到
2、函數(shù)原型:
#include <sys/types.h>
#include <sys/ipc.h>
key_t ftok(const char *pathname, int proj_id);
3、函數(shù)參數(shù)解析:
a、const char *pathname:用于產(chǎn)生key_t值的文件名(文件必須存在),
b、int proj_id:proj_id是子序號,雖然為int,但是只有8個比特被使用(0-255)
4、返回值
當成功執(zhí)行的時候,一個key_t值將會被返回,否則 -1 被返回。
5、函數(shù)內(nèi)部實現(xiàn)過程
在一般的UNIX實現(xiàn)中,是將文件的索引節(jié)點號取出,前面加上子序號得到key_t的返回值。
如指定文件的索引節(jié)點號為65538,換算成16進制為 0x010002,而你指定的ID值為38,
換算成16進制為0x26,則最后的key_t返回值為0x26010002。
注意:
1、假如要確保key_t值不變,要目確保ftok的文檔不被刪除 ,要么不用ftok,指定一個固定的key_t值。
2、另外說一句:在aix等操作系統(tǒng)上,有多個文檔系統(tǒng),會出現(xiàn)分布在不同的文檔系統(tǒng)上的兩個文檔具備相同的索引節(jié)點號,
此時用ftok對這兩個文檔進行操 作,只要id參數(shù)不變,得到的key_t值相同,造成創(chuàng)建消息隊列失敗。但是這種情況相當少見罷了。
因為在開發(fā)中涉及多種系統(tǒng)平臺,在系統(tǒng)移植時發(fā)現(xiàn)ftok()函數(shù)在不同平臺下存在一定的差異性。
當然,根本原因不在于ftok()本身,而應(yīng)該是 操作系統(tǒng)對于文件系統(tǒng)管理的差異性。
6、測試用例:
#include<stdio.h>
#include<unistd.h>
#include<stdlib.h>
#include<string.h>
#include<errno.h>
#include<sys/types.h>
#include<sys/ipc.h>
int main(int argc,char *argv[])
{
key_t key;
if(3 != argc)
{
printf("usage:ftok <patname> <pri_id>\n");
exit(1);
}
key = ftok(argv[1],atoi(argv[2]));
printf("key = %x\n",key);
return 0;
}
另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)scvps.cn,海內(nèi)外云服務(wù)器15元起步,三天無理由+7*72小時售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國服務(wù)器、虛擬主機、免備案服務(wù)器”等云主機租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡單易用、服務(wù)可用性高、性價比高”等特點與優(yōu)勢,專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場景需求。
網(wǎng)頁題目:Unix/Linux編程之ftok函數(shù)用法-創(chuàng)新互聯(lián)
分享地址:http://www.rwnh.cn/article42/dcidec.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供商城網(wǎng)站、網(wǎng)頁設(shè)計公司、網(wǎng)站設(shè)計公司、網(wǎng)站策劃、全網(wǎng)營銷推廣、云服務(wù)器
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)