牛骨文教育服务平台(让学习变的简单)
博文笔记

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

创建时间:2016-11-21 投稿人: 浏览次数:1094

如何在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
");
}

__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

声明:该文观点仅代表作者本人,牛骨文系教育信息发布平台,牛骨文仅提供信息存储空间服务。