0
我想在共享內存中創建字符串。我有簡單的程序I C++:共享內存POSIX將字符串值存入
#include<iostream>
#include<string>
#include<stdlib.h>
#include<semaphore.h>
#include<stdio.h>
#include<sys/shm.h>
int main(void){
std::string* line;
key_t lineKey = ftok("/tmp", '1');
int sharedLine = shmget(lineKey, sizeof(std::string), IPC_CREAT | 0660);
line = (std::string*)shmat(sharedLine, NULL, 0);
std::string helpVar = "";
while (true) {
std::cin >> helpVar;
(*line) = helpVar;
}
return 0;
}
但是,當我執行它(執行g++ -o myprogram myprogram.cpp -lpthread
編譯時確定),寫的東西,它說Core dumped
。我錯了什麼?
呵呵謝謝你,我很牛逼在這一點,我做這個愚蠢的錯誤:( – ventaquil
那是去上班的字符串?不是一個基本的對象,它有自己的分配,不會在共享內存中更好地堅持簡單的整數(包括字符數組) –
好吧,將更新答案@LightnessRacesinOrbit – kfx