Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/124.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/qt/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 如何更改QSharedMemory的大小_C++_Qt_Ipc_Shared Memory - Fatal编程技术网

C++ 如何更改QSharedMemory的大小

C++ 如何更改QSharedMemory的大小,c++,qt,ipc,shared-memory,C++,Qt,Ipc,Shared Memory,我想在进程之间为IPC创建一个共享内存段,但是我想放在该共享内存段中的变量一直在动态变化和增加,我看到的示例是以固定大小创建它,我查看了QSharedMemory的类引用,发现没有用于调整大小的函数 该怎么做,但不建议创建新的共享段,因为我希望一个段具有一个键,以便在运行时对其他进程可用。您不能,两个应用程序应该在一开始就商定大小并为其创建内存 如果你真的想重新调整它的大小,你必须关闭以前的内存并再次创建一个新的内存 在这种情况下,两个应用程序都必须知道发生了什么。所以我们不能在共享内存中使用动

我想在进程之间为IPC创建一个共享内存段,但是我想放在该共享内存段中的变量一直在动态变化和增加,我看到的示例是以固定大小创建它,我查看了QSharedMemory的类引用,发现没有用于调整大小的函数


该怎么做,但不建议创建新的共享段,因为我希望一个段具有一个键,以便在运行时对其他进程可用。

您不能,两个应用程序应该在一开始就商定大小并为其创建内存

如果你真的想重新调整它的大小,你必须关闭以前的内存并再次创建一个新的内存


在这种情况下,两个应用程序都必须知道发生了什么。

所以我们不能在共享内存中使用动态大小的变量,如QList或QMap@M M.你的意思是想通过共享内存通过指针传递
QList
QMap
?!我的意思是,我希望在共享内存中创建一个QList,以便其他进程可以访问它,我希望它们在@M M读取/更新它。所以,让共享内存足够大。我认为这是唯一的解决方案理论上,我可以做到这一点,但在运行时,您无法管理这一点,我的意思是,如果列表大于共享段,该怎么办?我不能让这个段安静下来,因为我的资源有限,而真正让我想到作为IPC的共享内存是通过在任何其他IPC中复制这些数据来减少内存消耗@M。