Здравствуйте, я пытаюсь добавить пространство общей памяти с помощью функции, я делаю это так:
void CreateSpace(int size, std::string name){
int aux;
int aux2;
aux = shm_open(name.c_str(), O_RDONLY | O_CREAT | O_EXCL, S_IRUSR | S_IWUSR);
if(aux > 0){
aux2 = ftruncate(aux, sizeof(int)*2);
if( aux2 != -1){
works
}else{
It does not work
}
}else{
Shared Memory Already Created }
Проблема в том, что я всегда получаю часть, которая не работает, я удаляю вручнуюобщие пробелы в dev / shm, но когда я пытаюсь создать новый пробел, который не существует, и пытаюсь установить определенный размер, я всегда получаю ftruncate = -1.Как я могу решить это?Я попытался использовать размер, вставленный в sizeof (int) * 2, но получаю те же результаты.
Когда я пытаюсь использовать его, вы просто называете его следующим образом:
CreateSpace(5, "/test1");
Это создаетпробел / test1, но я получаю ошибку, когда пытаюсь установить определенный размер с помощью ftruncate (int aux, off_set n) и всегда получаю ошибку 22.