首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

如何从C中的函数指针获取函数的名称?

要从C语言中的函数指针获取函数的名称,可以使用dlsym()函数。dlsym()函数是一个动态链接库函数,它可以获取到指定函数的指针地址。

以下是一个示例代码,演示如何使用dlsym()函数获取函数指针并打印函数名称:

代码语言:c
复制
#include<stdio.h>
#include <stdlib.h>
#include <dlfcn.h>

int my_function() {
    printf("Hello, world!\n");
    return 0;
}

int main() {
    void *handle;
    int (*func_ptr)();
    const char *error;

    // 加载当前进程的动态链接库
    handle = dlopen("./a.out", RTLD_LAZY);
    if (!handle) {
        fprintf(stderr, "%s\n", dlerror());
        exit(1);
    }

    // 获取函数指针
    func_ptr = dlsym(handle, "my_function");
    error = dlerror();
    if (error != NULL) {
        fprintf(stderr, "%s\n", error);
        exit(1);
    }

    // 打印函数名称
    printf("Function name: %s\n", dlerror());

    // 调用函数
    (*func_ptr)();

    // 关闭动态链接库
    dlclose(handle);

    return 0;
}

在这个示例中,我们使用dlopen()函数加载当前进程的动态链接库,然后使用dlsym()函数获取my_function()函数的指针地址。最后,我们打印函数名称并调用函数。

需要注意的是,dlsym()函数只能获取到动态链接库中的函数指针,因此需要使用dlopen()函数加载动态链接库。如果函数是静态链接的,则无法使用dlsym()函数获取函数指针。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

26分7秒

141-尚硅谷-高校大学生C语言课程-返回指针的函数

1分36秒

Excel中的IF/AND函数

3分7秒

10 指针做函数参数的输出特性_

1分30秒

Excel中的IFERROR函数

13分44秒

Dart基础之类中的构造函数

25分21秒

57_尚硅谷_书城项目_完成获取我的订单的函数

1分14秒

C语言 | 通过指向结构体变量的指针变量输出结构体变量中的信息

21分43秒

Python从零到一:Python函数的定义与调用

10分49秒

11.尚硅谷_JS高级_函数中的this.avi

8分57秒

李南江带你玩转C语言-05-函数的定义和执行

5分25秒

108-尚硅谷-高校大学生C语言课程-常用的数学函数

20分56秒

Web前端 TS教程 14.TypeScript中的函数类型 学习猿地

领券