msgget 返回Invalid argument(无效参数)是怎么回事
key_t key;
int msgid;
.......
memset(file, 0, sizeof(file));
sprintf(file, "%s/bin/%s", getenv("HOME"), argv[0]);
if ((key=ftok(file, '1')) == -1)
{
printf("Creat Key Error:%s\n",strerror(errno));
exit(-1);
}
if ((msgid = msgget(key, S_IRUSR|S_IWUSR|IPC_CREAT)) == -1)
{
printf("key[%ld]\n", key);
printf("Creat Message Error:%d %s\n", errno, strerror(errno));
exit(-1);
}
........
程序执行时显示:
key[822135052]
Creat Message Error:22 Invalid argment
是怎么回事???
我是用$home/bin/下的一个执行程序(属性777)通过ftok产生一个key值,然后
通过这个key值创建一个消息队列.