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()時,返回的函數指針在調用之前需要轉換爲適當的類型,以便知道函數參數和返回類型,但是如果我在庫中調用某個任意函數,顯然我會在編譯時不知道這個原型。 所以我問的是,有沒有辦法調用一個動態加載的函數,並傳遞它