我有一些遗留代码使用 shmget/shmat/shmdt 来创建、附加和管理共享内存段。
带有代码的应用程序有时会崩溃,将片段留在内存中。代码重新使用相同的段 key 重新连接到它们,但问题是它每次都使用不同的共享内存大小,因此无法连接。
我的问题是:
1) 是否可以在连接时更改共享内存大小?
2) 如果不是,我如何连接到共享内存段(即使我可能不知道大小),以便删除它(以便以后重新创建一个新的)?
谢谢!
最佳答案
您可以使用 shmctl删除并创建您自己的尺寸之一。我假设遗留代码在无法 shmget 时会尝试使用现有的共享内存?
关于linux - 更改现有共享内存段大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2261582/