key = ftok(".", 1); 這樣就是將fname設(shè)為 當前目錄。
10年專注建站、設(shè)計、互聯(lián)網(wǎng)產(chǎn)品按需開發(fā)服務(wù),業(yè)務(wù)涵蓋成都品牌網(wǎng)站建設(shè)、成都商城網(wǎng)站開發(fā)、微信小程序定制開發(fā)、軟件系統(tǒng)開發(fā)、重慶APP開發(fā)等。憑借多年豐富的經(jīng)驗,我們會仔細了解每個客戶的需求而做出多方面的分析、設(shè)計、整合,為客戶設(shè)計出具風格及創(chuàng)意性的商業(yè)解決方案,成都創(chuàng)新互聯(lián)更提供一系列網(wǎng)站制作和網(wǎng)站推廣的服務(wù),以推動各中小企業(yè)全面信息數(shù)字化,并利用創(chuàng)新技術(shù)幫助各行業(yè)提升企業(yè)形象和運營效率。
id是子序號。雖然是int類型,但是只使用8bits(1-255)。
在一般的UNIX實現(xiàn)中,是將文件的 索引節(jié)點號取出,前面加上子序號得到key_t的返回值。
如指定文件的 索引節(jié)點號為65538,換算成16進制為0x010002,而你指定的ID值為38,換算成16進制為0x26,則最后的key_t返回值為0x26010002。
查詢文件 索引節(jié)點號的方法是: ls -i
當 刪除重建文件后,索引節(jié)點號由 操作系統(tǒng)根據(jù)當時文件系統(tǒng)的使用情況分配,因此與原來不同,所以得到的索引節(jié)點號也不同。
如果要確保key_t值不變,要么確保ftok的文件不被 刪除,要么不用ftok,指定一個固定的key_t值, 比如:
#define IPCKEY 0x111
char path[256];
sprintf( path, "%s/etc/ config.ini", (char*)getenv("HOME") );
msgid=ftok( path, IPCKEY );[/code]
同一段程序,用于保證兩個不同用戶下的兩組相同程序獲得互不干擾的IPC鍵值。
由于etc/ config.ini(假定)為應(yīng)用系統(tǒng)的關(guān)鍵配置文件,因此不存在被輕易 刪除的問題——即使被刪,也會很快被發(fā)現(xiàn)并重建(此時應(yīng)用系統(tǒng)也將被重啟)。
ftok()的設(shè)計目的也在于此。
同一段程序,用于保證兩個不同用戶下的兩組相同程序獲得互不干擾的IPC鍵值。
getopt在win32、64位環(huán)境下都是可以使用,只要包含stdlib.h,使用_argc,__argv兩個參數(shù)即可,下面示例:
int APIENTRY WinMain(HINSTANCE hInstance,
HINSTANCE hPrevInstance,
LPSTR lpCmdLine,
int nCmdShow)
{
Test(__argc,__argv);
return 0;
}
上面的代碼同樣適用于BCB6。