常に 8 の倍数である変数に基づいて、ある程度の量の共有メモリを割り当てようとしていますshmsz
。ほとんどの場合、それは 8 または 16 です。
次のコードを使用します。
// allocate shared memory
if ((shmid = shmget(IPC_PRIVATE, shmsz, IPC_CREAT | 0666)) < 0) {
printf("Could not allocate shared memory.\n");
exit(1);
}
これは魔法のように機能していました。しかし今、私は常にエラーメッセージを受け取り、プログラムを終了させています。
編集:errno()
「バスエラー:10」を示しています