[gcc共享库初始化程序对当前可执行文件名称的访问

问题描述 投票:0回答:2

我有一个共享库(Linux上的gcc,用C ++编写,如果需要的话),需要运行构造函数。该构造函数需要处理一个配置文件,该文件可以与可执行文件位于同一目录中,也可以位于另一个预定义的位置。换句话说,我需要从库构造函数内部知道argv[0]的值。正确的方法是什么?

static void __attribute__((constructor)) mylib_init()
{
   // need access to config file which is in the same directory as executable
}
c++ c gcc constructor shared-libraries
2个回答
0
投票
但是,在Linux上,您可以阅读/proc/self/cmdline并获取命令名称。您可以从中计算出您感兴趣的目录。

[/proc/self/cmdline将使所有参数(包括命令)以空字符分隔。


0
投票
© www.soinside.com 2019 - 2024. All rights reserved.