真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

Unix/Linux編程之ftok函數(shù)用法

linux 中ftok函數(shù)的用法

撫順縣ssl適用于網(wǎng)站、小程序/APP、API接口等需要進(jìn)行數(shù)據(jù)傳輸應(yīng)用場景,ssl證書未來市場廣闊!成為成都創(chuàng)新互聯(lián)的ssl證書銷售渠道,可以享受市場價(jià)格4-6折優(yōu)惠!如果有意向歡迎電話聯(lián)系或者加微信:18980820575(備注:SSL證書合作)期待與您的合作!


1、函數(shù)作用: 系統(tǒng)建立IPC通訊(如消息隊(duì)列、共享內(nèi)存時(shí))必須指定一個(gè)ID值。通常情況下,該id值通過ftok函數(shù)得到
2、函數(shù)原型:
        #include 
                 #include 

     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是子序號(hào),雖然為int,但是只有8個(gè)比特被使用(0-255)
4、返回值
    當(dāng)成功執(zhí)行的時(shí)候,一個(gè)key_t值將會(huì)被返回,否則 -1 被返回。
5、函數(shù)內(nèi)部實(shí)現(xiàn)過程
    在一般的UNIX實(shí)現(xiàn)中,是將文件的索引節(jié)點(diǎn)號(hào)取出,前面加上子序號(hào)得到key_t的返回值。
如指定文件的索引節(jié)點(diǎn)號(hào)為65538,換算成16進(jìn)制為 0x010002,而你指定的ID值為38,
換算成16進(jìn)制為0x26,則最后的key_t返回值為0x26010002。

注意


    1、假如要確保key_t值不變,要目確保ftok的文檔不被刪除 ,要么不用ftok,指定一個(gè)固定的key_t值。
    2、另外說一句:在aix等操作系統(tǒng)上,有多個(gè)文檔系統(tǒng),會(huì)出現(xiàn)分布在不同的文檔系統(tǒng)上的兩個(gè)文檔具備相同的索引節(jié)點(diǎn)號(hào),
    此時(shí)用ftok對(duì)這兩個(gè)文檔進(jìn)行操 作,只要id參數(shù)不變,得到的key_t值相同,造成創(chuàng)建消息隊(duì)列失敗。但是這種情況相當(dāng)少見罷了。
    因?yàn)樵陂_發(fā)中涉及多種系統(tǒng)平臺(tái),在系統(tǒng)移植時(shí)發(fā)現(xiàn)ftok()函數(shù)在不同平臺(tái)下存在一定的差異性。
    當(dāng)然,根本原因不在于ftok()本身,而應(yīng)該是 操作系統(tǒng)對(duì)于文件系統(tǒng)管理的差異性。

6、測試用例:

#include
#include
#include
#include
#include
#include
#include

int main(int argc,char *argv[])
{
        key_t key;
        if(3 != argc)
        {
                printf("usage:ftok  \n");
                exit(1);
        }

        key = ftok(argv[1],atoi(argv[2]));
        printf("key = %x\n",key);
        return 0;

}

分享文章:Unix/Linux編程之ftok函數(shù)用法
文章起源:http://weahome.cn/article/ijcjpi.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部