有没有一种方法可以访问main()
之外的程序的args而不存储对它们的引用?
程序参数存储在程序的保留空间中,因此我看不到无法访问它们的原因。也许有类似const char** get_program_arguments()
和int get_program_arguments_count()
的东西,但我找不到它...
我的问题来自以下事实:我正在重写一个库,该库现在已在公司内部的许多程序中使用,并且我需要访问这些程序的公共参数而不更改它们。例如,我需要程序名称,但是我不能使用::getenv("_")
,因为它们可以从各种shell中执行。我不能使用GNU扩展,因为它需要在Linux,AIX,使用gcc,CC等的SunOS上工作。