【发布时间】:2015-02-08 13:51:12
【问题描述】:
我正在寻找一种方法来查找运行它的可执行文件的名称。这意味着如果我有一个名为program 的文件运行我想得到它的名字的东西。
使用__FILE__ 不适合我,因为我需要可执行文件名而不是包含代码的 C 文件名。
我想知道是否有可以帮助我的 gcc 宏或我找不到的内置函数。
编辑:
同样使用argv[0] 也不合适,因为我不仅需要在main 内部调用该函数。
并且将 argv[0] 参数传递给可能需要此参数的所有函数也是不可接受的,因为它将在整个系统中使用(我需要通过它进行散列)。
【问题讨论】:
-
@zenith thnx。我只是将它添加为评论,指出它不符合我的需求。
-
您需要它才能在 Windows 上工作,还是 POSIX 系统就足够了?
-
我在linux上运行它
-
但是您不能将
argv[0]传递给需要它的代码的任何部分吗?或者只是将argv[0]设置为全局变量或其他东西,如果它太多传递? -
宏是在编译时扩展的,所以如果有人在编译后去更改可执行文件的名称,宏是没有问题的。
标签: c