如何在main函数外获取main函数的参数(argc、argv)

如何在main函数外获取main函数的参数(argc、argv)

在main函数主函数外不采用全局变量的方式获取argc、argv

这里写图片描述

调用attribute,在程序的.init_array字段添加指定函数地址,其传入的参数中就有argc、argv参数。

代码示例

#include <stdio.h>
#include <string.h>

static void get_main_para_test(int argc, char* argv[], char* envp[]) {
        printf("i am here\n");
}

__attribute__((section(".init_array"))) \
                void (* p_get_main_para_test_t)(int, char*[], char*[]) = &get_main_para_test;
int main(int argc, char *argv[])
{
    return 0;
}

在函数执行时,会在.init_array地方执行get_main_para_test函数,

该方式可以在不使用全局变量的情况下,获取并处理main传的参数。

http://blog.csdn.net/libinbin_1014/article/details/53263786
https://gist.github.com/smokku/c0b64ec60c95736df7e1

猜你喜欢

转载自blog.csdn.net/libinbin_1014/article/details/53263786