ftok()函數(shù)
系統(tǒng)建立IPC通訊 (消息隊(duì)列、信號量和共享內(nèi)存) 時(shí)必須指定一個(gè)ID值豁鲤。通常情況下,該id值通過ftok函數(shù)得到。
函數(shù)原型:key_t ftok( const char * fname, int id ); (id>0)
fname就是你指定的文件名(已經(jīng)存在的文件名)典挑,一般使用當(dāng)前目錄。
在一般的UNIX實(shí)現(xiàn)中啦吧,是將文件的索引節(jié)點(diǎn)號
取出您觉。(文件重建將會分配一個(gè)新的索引節(jié)點(diǎn)號)
ftok 返回值組成:hex(id)&0xff
03 hex(節(jié)點(diǎn)號)&0xffff
。
傳入的id低8位+0x03+ 節(jié)點(diǎn)號的低16位授滓。(test on redhat )
可通過 ls -l
查看文件節(jié)點(diǎn)值琳水。
Usage
#include <stdio.h>
#include <sys/ipc.h>
int main(int argc,char* argv[])
{
if(argc!=2)
{
puts("usage: keyfile\n");
return 0;
}
printf("%s\n",argv[0]);
printf("ftok=0x%x\n",ftok(argv[1],1) );
return 0;
}