dlsym

    0热度

    3回答

    我有一个由用C++编写的不同模块组成的应用程序。 其中一个模块用于处理SunGrid Engine上的分布式任务。它使用DRMAA API来提交和监控网格作业。如果客户端不支持网格,应使用本地机器 API libdrmaa.so的共享对象在编译时链接并在运行时加载。 如果使用我的应用程序的客户端具有此“.so”,则一切正常,但如果客户端没有该应用程序, 应用程序将退出未能加载共享库。 为了避免这种

    2热度

    3回答

    我正在编写一个插入库来跟踪libc中的一些库函数的使用,如open(),close(),connect()等。它通常适用于大多数应用程序。但是,当我使用PHP进行尝试时,特别是使用PHP的MySQL模块,没有任何对此模块内libc的函数调用进行跟踪(所以没有connect(),没有socket()等)。 'strace'告诉我系统调用了socket(),connect()等。在模块上运行'file

    3热度

    5回答

    我正在编写一种运行时系统/解释器,我需要做的一件事是调用位于外部的c/C++函数库。 在linux上,我使用了dlfcn.h函数来打开一个库,并调用一个位于其中的函数。问题是,在使用dlsysm()时,返回的函数指针在调用之前需要转换为适当的类型,以便知道函数参数和返回类型,但是如果我在库中调用某个任意函数,显然我会在编译时不知道这个原型。 所以我问的是,有没有办法调用一个动态加载的函数,并传递它