如何用ftok来产生相关的key_t值
2011-03-03 15:08
246 查看
V中,我们经常用用key_t的值来创建或者打开信号量,共享内存和消息队列。这个在IPC的环境中十分的重要,比如说,服务器创建了一个消息队列,等待
客户机发送请求。那么如何创建或者打开已有的消息队列呢?一般而言,我们对于服务器使用的路径和项目id(proj_id)是已知的,所以客户机可以获取
相同的key来打开 消息队列并进行操作。下面就是ftok的使用原型:
# include <sys/types.h>
# include <sys/ipc.h>
key_t ftok(const char *pathname, int proj_id);
注意:
1)pathname一定要在系统中存在
2)pathname一定是使用进程能够访问的
3)proj_id是一个1-255之间的一个整数值,典型的值是一个ASCII值。
当成功执行的时候,一个key_t值将会被返回,否则-1被返回。我们可以使用errno来确定具体的错误信息(对于errno的相关信息,请参考http://blog.csdn.net/hello_wyq/archive/2006/08/01/1006216.aspx
),如果我们很懒惰的话,不妨就使用perror函数来答应对应的出错字符信息。
下面的程序简单的演示和打印如何使用ftok及其对应值
#include <stdio.h> #include <sys/types.h> #include <sys/ipc.h> int main( void ) { for ( int i = 1; i < 256; ++ i ) printf( "key = %ul/n", ftok( "/tmp", i ) ); return 0; }
相关文章推荐
- 如何用ftok来产生相关的key_t值
- 如何用ftok来产生相关的key_t值
- 如何用ftok来产生相关的key_t值
- 如何用ftok来产生相关的key_t值
- Spring JdbcTemplate 查询出的Map,是如何产生大小写忽略的Key的?
- (转)Linux共享内存使用常见陷阱与分析(3)-ftok是否一定会产生唯一的key值
- Spring JdbcTemplate 查询出的Map,是如何产生大小写忽略的Key的?
- 如何随机产生唯一的app_key和app_secret
- Angularjs 如何在 post 请求时去掉因 ng-repeat 产生的 $$hashkey?
- 轴的误差与相关的事件:运动相关的事件是如何产生的
- 如何产生facebook后台用到的key hashs
- Spring JdbcTemplate 查询出的Map,是如何产生大小写忽略的Key的?
- 如何随机产生唯一的app_key和app_secret
- 如何申请google map api V2 key
- 如何在IDEA里给大数据项目导入该项目的相关源码(博主推荐)(图文详解)
- [Oracle][Metadata]如何查找与某一个功能相关的数据字典名
- 超声图像中的speckle噪声是如何产生的?
- 使用iPhoneX模拟器适配时如何改动最少的代码使不支持模拟器的.a文件相关的功能不报错
- 如何批量删除redis中的key
- 外贸SEO与电子邮件推广是如何结合在一起,并产生效果的?