繁体   English   中英

C++ 共享对象初始化构造函数析构函数

[英]C++ shared object initialization constructor destructor

我正在研究使用g++编译的共享对象,该对象用作日志记录 API。 我编写了一个小实用程序来练习库,但我发现每次程序启动和退出时都会调用共享对象构造函数/析构函数。 我希望能够维护.so文件中任何变量/对象的状态,即使没有链接的活动应用程序。 是否有实现此目的的机制?

我希望能够维护 .so 文件中任何变量/对象的状态,即使没有链接的活动应用程序。 是否有实现此目的的机制?

在现代操作系统中,内存中的所有内容都“属于”一个或多个进程,并且没有“ .so没有活动应用程序”这样的东西。

此外,当您的.so链接到多个活动应用程序(正在运行的进程)时,您的库仍然无法记录共享状态——您的.so每个实例将无法观察该.so其他实例在其他进程中是活动的,除非使用某些IPC机制。

可以使用shmat创建一个共享内存段,并在那里记录共享状态。 该状态也将持续存在,直到通过smtctl系统调用显式删除。

注意:以这种方式使用共享内存充满了复杂性,并且很可能对日志 API 库来说是一种矫枉过正。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM