SylixOS --- 动态装载示例

动态装载示例:

/*********************************************************************************************************
**
**                                    中国软件开源组织
**
**                                   嵌入式实时操作系统
**
**                                       SylixOS(TM)
**
**                               Copyright  All Rights Reserved
**
**--------------文件信息--------------------------------------------------------------------------------
**
** 文   件   名: ***
**
** 创   建   人: ***
**
** 文件创建日期: ** 年 ** 月 ** 日
**
** 描        述: 加载动态库示例的 app 程序
*********************************************************************************************************/
#include <stdio.h>
#include <dlfcn.h>
/*********************************************************************************************************
** 函数名称: main
** 功能描述: 主函数
** 输 入  : argc,argv
** 输 出  : ERROR
** 全局变量:
** 调用模块:
*********************************************************************************************************/
int main (int argc, char *argv[])
{
    
    
    void     *so_handler;
    void    (*sub_fun)();

    fprintf(stdout, "Hello World!\n");

    so_handler = dlopen("libdltest.so", RTLD_GLOBAL);
    if (!so_handler) {
    
    
        fprintf(stderr, "%s \n",dlerror());
        return (-1);
    }

    sub_fun = dlsym(so_handler, "lib_func_test");
    if (!sub_fun) {
    
    
        fprintf(stderr, "%s \n",dlerror());
        return (-2);
    }

    sub_fun();

    dlclose(so_handler);

    return (0);
}
/*********************************************************************************************************
  END
*********************************************************************************************************/

dltest动态库文件内容:

/*********************************************************************************************************
**
**                                    中国软件开源组织
**
**                                   嵌入式实时操作系统
**
**                                       SylixOS(TM)
**
**                               Copyright  All Rights Reserved
**
**--------------文件信息--------------------------------------------------------------------------------
**
** 文   件   名: ***
**
** 创   建   人: ***
**
** 文件创建日期: ** 年 ** 月 ** 日
**
** 描        述: 加载动态库示例的动态链接库程序
*********************************************************************************************************/
#include <stdio.h>
/*********************************************************************************************************
** 函数名称: lib_func_test
** 功能描述: 用于 app 程序调用的库函数
** 输 入  : NONE
** 输 出  : NONE
** 全局变量:
** 调用模块:
*********************************************************************************************************/
void lib_func_test (void)
{
    
    
    fprintf(stdout, "hello library lib_func_test() run!\n");
}
/*********************************************************************************************************
  END
*********************************************************************************************************/

运行结果:
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/qq_40390825/article/details/120771049
今日推荐