int ftok ( string $pathname , string $proj )
創(chuàng)新互聯(lián)建站是一家專業(yè)提供南安企業(yè)網(wǎng)站建設(shè),專注與做網(wǎng)站、成都做網(wǎng)站、H5建站、小程序制作等業(yè)務(wù)。10年已為南安眾多企業(yè)、政府機(jī)構(gòu)等服務(wù)。創(chuàng)新互聯(lián)專業(yè)網(wǎng)站設(shè)計(jì)公司優(yōu)惠進(jìn)行中。
將一個(gè)可訪問的文件路徑名轉(zhuǎn)換為一個(gè)可供 shmop_open() 和其他系統(tǒng)VIPC keys使用的整數(shù),proj參數(shù)必須是一個(gè)字符串,這個(gè)參數(shù)其實(shí)就是讀寫方式
同一段程序,用于保證兩個(gè)不同用戶下的兩組相同程序獲得互不干擾的IPC鍵值。
key = ftok(".", 1); 這樣就是將fname設(shè)為 當(dāng)前目錄。
id是子序號(hào)。雖然是int類型,但是只使用8bits(1-255)。
在一般的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。
查詢文件 索引節(jié)點(diǎn)號(hào)的方法是: ls -i
當(dāng) 刪除重建文件后,索引節(jié)點(diǎn)號(hào)由 操作系統(tǒng)根據(jù)當(dāng)時(shí)文件系統(tǒng)的使用情況分配,因此與原來不同,所以得到的索引節(jié)點(diǎn)號(hào)也不同。
如果要確保key_t值不變,要么確保ftok的文件不被 刪除,要么不用ftok,指定一個(gè)固定的key_t值, 比如:
#define IPCKEY 0x111
char path[256];
sprintf( path, "%s/etc/ config.ini", (char*)getenv("HOME") );
msgid=ftok( path, IPCKEY );[/code]
同一段程序,用于保證兩個(gè)不同用戶下的兩組相同程序獲得互不干擾的IPC鍵值。
由于etc/ config.ini(假定)為應(yīng)用系統(tǒng)的關(guān)鍵配置文件,因此不存在被輕易 刪除的問題——即使被刪,也會(huì)很快被發(fā)現(xiàn)并重建(此時(shí)應(yīng)用系統(tǒng)也將被重啟)。
ftok()的設(shè)計(jì)目的也在于此。
當(dāng)前題目:c語(yǔ)言ftok函數(shù),c++ ftell函數(shù)
網(wǎng)址分享:http://vcdvsql.cn/article4/hsodie.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供外貿(mào)建站、商城網(wǎng)站、網(wǎng)站設(shè)計(jì)、建站公司、App設(shè)計(jì)、企業(yè)建站
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)