我是linux应用程序开发的新手。
我有两个库共享库libGetData.so和libProcessData.so。
我在Linux PC上运行两个不同的C ++应用程序作为A和B,并在两个应用程序中使用这两个库。
我在两个库中都有很少的静态变量。
但是,当我在应用程序A中的libGetData.so库中设置一个静态变量时,它没有反映在应用程序B中。
我的目标是在任何应用程序中使用共享库,并在该库中设置任何静态变量。同样的事情应该反映在使用相同库的其他应用程序上。
请帮帮我......
答案 0 :(得分:5)
但是,当我在应用程序A的libGetData.so库中设置一个静态变量时,它没有反映在应用程序B中。
正确。
我的目标是在任何应用程序中使用共享库,并在该库中设置任何静态变量。同样的事情应该反映在使用相同库的其他应用程序上。
不,这不是共享库的工作方式。
共享库允许库的不变部分由多个进程共享,但这纯粹是操作系统级别的实现细节。他们不意味着进程共享一个地址空间。不同流程中的变量是不同的,不共享。
要让进程通信,他们需要使用某种形式的Inter-Process Communication (IPC),例如管道,套接字或共享内存(与共享库无关)。