0
int shmCreate(int id, int size)
{
int shmid
key_t key;
if ((key = ftok(".", id)) == -1) {
perror("ftok");
exit(1);
}
if ((shmid = shmget(key, size, IPC_CREAT | 0666)) == -1) {
perror("shmget");
exit(1);
}
return shmid;
}
我试图编写使用shmget
函数,其中函数获取大小作为参数。我得到无效参数错误,除了大小= 1。除了1我通过大小我得到错误,但内存段创建时,我检查ipcs -m,它的大小为1。我摆脱了这个错误?C linux shmget无效的参数
'key'的值是什么,即你确定'ftok'没有失败? – bruceg
84008723,但这是否有所作为?不,如果它是'-1',它不会失败 – damian241132
,这意味着'ftok'失败。检查错误呼叫总是很明智的。 – bruceg