Я пытаюсь создать разделяемую память с адресом переменных, созданных в куче, я обеспечил выравнивание адреса по странице, но все равно получаю ошибку: «Неверный аргумент».Как я мог правильно сделать это?
#include <iostream>
#include <sys/types.h>
#include <sys/ipc.h>
#include <sys/shm.h>
#include <sys/sem.h>
#include <cstdint>
const int PERMISSION = 0666; //-rw-rw-rw-
int main() {
int size = 10;
void* testp = std::aligned_alloc(SHMLBA, size);
int shkey = 314159, shmid;
if ((shmid = shmget(shkey, size, IPC_CREAT | PERMISSION)) == -1) {
perror("shmget: shmget failed");
exit(-1);
}
void *ret;
if ((ret = shmat(shmid, testp, 0)) == (void*)-1) {
perror("shmat: shmat failed");
exit(-1);
}
return 0;
}