ftok到底有什么好处?
来源: 互联网 发布时间:2016-08-14
本文导语: 我看到很多操作IPC,例如消息队列,共享内存等的时候,常常的key并不是直接写死的,而是用ftok返回的键值作为IPC键值,请问这样做有什么好处吗?直接写死,或者写到配置文件中不是也一样吗? 我自己写了几行测...
我看到很多操作IPC,例如消息队列,共享内存等的时候,常常的key并不是直接写死的,而是用ftok返回的键值作为IPC键值,请问这样做有什么好处吗?直接写死,或者写到配置文件中不是也一样吗?
我自己写了几行测试代码,发现一样也都可以做大,请问为什么还是都用 ftok呢?请不吝赐教。
我自己写了几行测试代码,发现一样也都可以做大,请问为什么还是都用 ftok呢?请不吝赐教。
|
ftok的第一个参数是一个文件的路径名称.一般在应用系统中,使用$HOME或者应用系统的根目录作为它的值.这样产生的key_t就不会与系统中其他的软件和系统的相同了,从而避免造成冲突.
如果,你使用配制文件,或者写死在程序里面,key_t的值有可能与系统中其他的软件.
ftok的第二个参数是用于你在自己的系统里产生多个IPC的时候,区分它们使用的.
总之, ftok的首个参数是用于与其他系统相区别的.
第二个参数是用于本系统的不同的IPC区别使用的.
|
ftok没有什么好处,可是不用的话,可能会又很大的坏处。
|
ftok应用范围:在IPC通信及消息记者中使用
解析:
系统建立IPC通讯(如消息队列、共享内存时)必须指定一个ID值。通常情况下,该id值通过ftok函数得到。
在一般的UNIX实现中,是将文件的索引节点号取出,前面加上子序号得到key_t的返回值。
如指定文件的索引节点号为65538,换算成16进制为0x010002,而你指定的ID值为38,换算成16进制为0x26,则最后的key_t返回值为0x26010002。
解析:
系统建立IPC通讯(如消息队列、共享内存时)必须指定一个ID值。通常情况下,该id值通过ftok函数得到。
在一般的UNIX实现中,是将文件的索引节点号取出,前面加上子序号得到key_t的返回值。
如指定文件的索引节点号为65538,换算成16进制为0x010002,而你指定的ID值为38,换算成16进制为0x26,则最后的key_t返回值为0x26010002。
您可能感兴趣的文章:
本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。