アプリ版:「スタンプのみでお礼する」機能のリリースについて

Linux or Solaris + Cで開発しています。

msgget()で使用するため、
ftok()でキー作成したいのですが、
ftok("/export/home/aaa.txt",100);
とすると 100 というキーができます。
ftok("/export/home/aaa.txt",90);
とすると 90 というキーができます。
aaa.txtというファイルはちゃんと存在しています。

全く第1引数が効いていないようなのですが、原因は何でしょうか?
試しに
ftok(NULL,90);
としても 90 というキーができました・・・

どうすればよいのでしょうか?

A 回答 (1件)

Debian Linux Kernel 2.6.12-1-686


gcc version 4.0.2 (Debian 4.0.2-2)
で、

# include <stdio.h>
# include <errno.h>
# include <sys/types.h>
# include <sys/ipc.h>

int main(void)
{
key_t key;

key = ftok("/tmp/tmp.c", 100);
printf("key =%d, errno = %d\n", key,errno);

key = ftok("/tmp/tmp.c", 90);
printf("key =%d, errno = %d\n", key,errno);

key = ftok(NULL, 90);
printf("key =%d, errno = %d\n", key,errno);
}
を実行し、
key =1677819930, errno = 0
key =1510047770, errno = 0
key =-1, errno = 14
となりました。
具体的な使用システムは何でしょうか?
少なくとも、ftok(NULL, 90)はエラーになるはずですね。
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!