ftok( )操作的陷阱

近期调试了一个Bug,最后发现是ftok( )产生的key值引起的,纪录下以备忘。

1. ftock产生的 key值不一定是唯一的

ftock一般传入不同的文件或目录,但有时,不同的名子会产生出相同的key值。
所以,可以通过ipcs命令查看一下key值是否已存在。

ipcs -s
ipcs -m

2. ftock文件指定要求

很多人一般会用系统目录,比如:
/tmp;/bin 等来创建 key值,但是如果有别的程序也用了这个名子创建key值,然后创建信号量或共享内存,
那么我们也创建了信号量或共享内存,那么在使用过程中就可以会出现问题。
所在传入的名子最好不要用系统的,而用程序自己的,比如:/usr/locale/myapp/lib

你可能感兴趣的:(Linux)