阅读量:0
在Linux中,dlsym函数用于在动态链接库中查找符号并返回其地址。如果dlsym函数在查找符号时遇到错误,通常会返回NULL,并可以通过调用dlerror函数来获取错误信息。
以下是一种常见的错误处理方式:
void* handle = dlopen("libexample.so", RTLD_LAZY); if (!handle) { fprintf(stderr, "Error: %s\n", dlerror()); exit(EXIT_FAILURE); } void (*function)() = dlsym(handle, "example_function"); if (!function) { fprintf(stderr, "Error: %s\n", dlerror()); dlclose(handle); exit(EXIT_FAILURE); } // 调用函数 function(); dlclose(handle);
在上面的代码中,首先使用dlopen函数打开动态链接库,如果打开失败则通过dlerror函数获取错误信息并退出程序。然后使用dlsym函数查找指定的符号,如果查找失败也会通过dlerror函数获取错误信息并关闭动态链接库句柄,最后退出程序。