Есть ли способ получить доступ к аргументам программы за пределами main()
без сохранения ссылок на них?
Программные аргументы хранятся в зарезервированном пространстве программы, поэтому я не вижу причин, по которым невозможно получить к ним доступ. Может быть, есть что-то вроде const char** get_program_arguments()
и int get_program_arguments_count()
, но я не могу найти это ...
Моя проблема связана с тем, что я переписываю библиотеку, которая сейчас используется во многих программах внутри компании, и мне нужно получить доступ к общим аргументам этих программ, не меняя их. Например, мне нужно имя программы, но я не могу использовать ::getenv("_")
, поскольку они могут выполняться из различных оболочек. Я не могу использовать расширение GNU, потому что это должно работать в Linux, AIX, SunOS с использованием gcc, CC и т. Д.