Linux 服务端编程(一)

ftok()函数

系统建立IPC通讯 (消息队列、信号量和共享内存) 时必须指定一个ID值。通常情况下,该id值通过ftok函数得到。
函数原型:key_t ftok( const char * fname, int id ); (id>0)
fname就是你指定的文件名(已经存在的文件名),一般使用当前目录。

在一般的UNIX实现中,是将文件的索引节点号取出。(文件重建将会分配一个新的索引节点号)
ftok 返回值组成:hex(id)&0xff03 hex(节点号)&0xffff
传入的id低8位+0x03+ 节点号的低16位。(test on redhat )
可通过 ls -l 查看文件节点值。

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;
}
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 135,642评论 19 139
  • php usleep() 函数延迟代码执行若干微秒。 unpack() 函数从二进制字符串对数据进行解包。 uni...
    思梦PHP阅读 6,130评论 1 24
  • 喜欢一个人最简单粗暴的方式是什么? 汪城的回答是告白,而我说,喜欢就去偷他的手机啊。 这一年,我换了居所。时光没有...
    原来是凉茶呀阅读 10,897评论 9 43
  • 卧室是人们经过一天紧张的工作后最好的休息和独处的空间,它应具有安静、温馨的特征,从选材、色彩、室内灯光布局到室内物...
    设饰度阅读 1,501评论 0 1
  • 我每天都会为一些事情后悔 有时候会不知所措的舞蹈 反思的时候很少 在寂静的时候,我会想念一些人 想起很多朋友的名字...
    仓巴阅读 2,394评论 0 1