【发布时间】:2010-05-15 08:51:55
【问题描述】:
我有一个用 C 编写的服务器和一个客户端。我尝试在服务器中加载一个共享库,然后将库函数指针传递给客户端。这样我就可以更改库而无需编译客户端。
因为每个进程都有自己独立的内存空间,我想知道是否可以在共享内存上加载共享库,在客户端传递函数指针和映射共享内存,然后让客户端执行代码服务器加载的库。
【问题讨论】:
-
服务器和客户端是否在同一台机器上运行?
-
是的,服务器和客户端在同一台机器上运行。服务器读取一个 xml 文件,并根据 xml 查询返回库函数名称。客户端读取函数名并尝试获取库函数指针来执行它们。
-
我不想将库与客户端链接,因为我希望能够更改功能而无需编译客户端。而且我不希望(如果可能的话)在客户端上 dlopen 库,因为客户端将被调用多次。