【发布时间】:2022-01-17 00:32:54
【问题描述】:
我想用 C for linux 创建共享库,一些数据库管理的抽象实现。共享库负责读取包含数据库的文件并将差异写入其中。但我不知道如何处理这种情况下的文件处理的多处理问题,例如:App1 尝试将差异写入数据库文件,而 App2 目前已打开带有数据库的文件以读取它。在本例中,我想通知 app1 文件当前已打开并延迟写入序列,直到 App2 完成数据库文件读取。
我正在考虑使用一些互斥机制或使用全局枚举变量来管理当前文件状态,但在阅读了一些帖子后,我了解到每个使用共享库的应用程序都会在内存中创建自己的副本,但它们不会t 在工作期间共享任何内存部分。
【问题讨论】:
-
也许您在寻找client-xerver model,而不是共享库?否则请查看File locking mechanism。
-
根据操作系统,您的库可能能够包含一个可以保存一个或多个变量的共享内存部分。
-
谢谢,我会研究这些主题(主要是共享内存部分),并可能尝试给出一些答案来更新/完成我的问题
标签: c linux shared-libraries