如何在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