UID:119418
UID:116426
angelus:共享内存的出现是为了跨进程通讯的,如果你是在一个进程里,不需要共享内存。直接用全局变量就行了,全局变量在多线程里依然可以访问 (2019-05-30 11:25)
UID:166110
fsu0413:1 Qt有说明,返回的size可能大于设置的size,里面需要存一些Qt自己的东西2 只有一个进程调用create,其他进程调用attach3 主进程子进程都不用检测,如果共享内存没有正确关闭的话: Windows下:无需任何处理,共享内存会被系统关闭 Linux下:无法进行任 .. (2019-05-30 12:27)
foxgod:如果这个size比我创建的大,我往里面存的数据,在取出来的时候,不是比我存的字节多,就出错了,这个子进程不知道该取多大的字节,就去了共享内存那么大的字节,所以不是存入的数据那么大的,怎么弄呢?只有最后一个实例调用detach或者析构后才会释放,你说的这个是并发的时候 .. (2019-05-30 12:34)
angelus:共享内存没有跨平台性,不是首选,本地socket或者传统socket才是王道 (2019-07-19 09:28)
fsu0413:共享内存在posix标准和windows里都有。。。除非你的平台是自创的 (2019-07-21 12:33)
foxgod:共享内存,里面的数据存放是一直存在前一个数据的后面吗,还是需要自己去写地址存放,二共享内存存放的数据大于创造的时候,是自己的判断,还是需要自己判断呢 (2019-07-22 17:33)
fsu0413:1 共享内存是有名字的。。。一般用名字来引用地址空间2 没理解 (2019-07-23 07:35)
angelus:举个简单的例子,安卓和ios下就无法用共享内存 , 当有跨设备的时候,共享内存更没啥用,万金油还是要靠socket (2019-07-25 11:18)
foxgod:咨询个问题,就是共享内存读的时候为什么这样就读不出来了char* readAdd = (char*)m_sharememory->constData();QBuffer buffer;buffer.setData(readAdd, ulSize);....... (2019-07-23 17:20)
UID:147006
lf460:在Linux平台下,共享内存用setKey()设置了Key,在进程异常退出后,再次启动进程前,能否通过这个Key将原来的内存段清除呢? (2019-07-26 16:48)
fsu0413:1 在通信协议里定2 detach了之后共享内存没了,数据也丢了 (2019-05-30 12:39)
fsu0413:不清楚。。。。 (2019-07-25 21:55)
foxgod:用什么办法可以获取已经往共享内存里面写入了多少的数据呢,写入的是个结构体。我用char* memoryAdd = (char*)const_cast<void*>(sharememory->data());//获取共享内存中的地址strlen(memory .. (2019-08-21 09:44)
foxgod:调用detach后,共享内存会释放内存空间吗?? (2019-08-21 12:16)