ftok( )操作的陷阱

xiaoxiao2021-02-28  31

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

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

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

ipcs -s ipcs -m

2. ftock文件指定要求

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

转载请注明原文地址: https://www.6miu.com/read-2612546.html

最新回复(0)