QSharedMemory를 사용하여 일부 데이터를 저장하고 거기에 포함 된 데이터에 데이터를 추가하려고합니다. 그래서 나는 새로운 데이터로 다음 코드를 여러 번 호출한다. "audioBuffer"는이 함수에 주어진 새로운 데이터입니다. memcpy 작업에서 오류가 발생하기 전에이 함수를 약 4-7 회 호출 할 수 있습니다. QSharedMemory 위치의 크기가 너무 커서 일부 오류가 발생하기 전에 memcpy가 경계를 넘어 데이터를 복사하는 문제는 없습니다. 또한 m_SharedAudioBuffer.errorString()은 memcpy 연산까지 오류를주지 않습니다. 현재,이 QSharedMemory 세그먼트를 사용하는 프로세스는 하나뿐입니다. 또한 매번 추가하지 않고 지속적으로 글을 쓰려고 시도 했으므로 잘 작동하므로 공유 메모리 세그먼트에 더 많은 데이터를 추가하려고하면 어떤 일이 발생합니다. 어떤 아이디어? 감사!Qt QSharedMemory 여러 번 성공한 쓰기 후 분할 오류
EDIT : 아마도 내 대상 장치가 매우 작기 때문일 수 있습니다. 공유 메모리에 쓰기를 시도 할 때 사용 가능한 RAM이 크지 만/tmp 디렉토리 (4MB 만 제공)에서 다음 항목이 있음을 알 수 있습니다. - 크기가/tmp에서 거의 소모되지 않지만, 나는 더 많은 메모리를 할당 할 수없는 이유도 QSharedMemory는 :: 메서드를 만들 m 확실하지 않을 960000 내 최대 크기 실패하지 :
# cd /tmp/
# ls
QtSettings
lib
qipc_sharedmemory_AudioBufferData2a7d5f1a29e3d27dac65b4f350d76a0dfd442222
qipc_sharedmemory_AudioBufferSizeData6b7acc119f94322a6794cbca37ed63df07b733ab
qipc_systemsem_AudioBufferData2a7d5f1a29e3d27dac65b4f350d76a0dfd442222
qipc_systemsem_AudioBufferSizeData6b7acc119f94322a6794cbca37ed63df07b733ab
qtembedded-0
run