如何以编程方式检测可执行文件在运行时所在的目录?

Posted

技术标签:

【中文标题】如何以编程方式检测可执行文件在运行时所在的目录?【英文标题】:How can I programmatically detect what directory an executable is in when it is run? 【发布时间】:2013-08-16 04:04:38 【问题描述】:

我一直在玩 Xcode 中的命令行工具,但偶然发现了一些我不知道如何处理的东西。

如果我构建我的工具并将可执行文件放在桌面上,是否可以运行可执行文件并将输出作为“self”所在的目录?意思是,我可以登录“嘿,我在:/Users/me/Desktop”吗?

然后如果我将该文件移动到别处,有没有改变?

我可以为此使用某种环境变量吗?

谢谢!

【问题讨论】:

【参考方案1】:

好的,哇。没想到我能这么快找到答案,但it 是。原来文件的位置是传递给 main 的参数之一。

代码如下:

    for (int i=0; i<argc; i++)
    
        NSLog(@"argv[%d] = '%s'", i, argv[i]);
    

有趣!

【讨论】:

是的,argv[0] 对于任何 C/C++/Objective-C 程序都是正在运行的程序。 为什么要创建NSString?就做NSLog(@"argv[%d] = '%s'", i, argv[i]); 我刚刚从引用的链接中获取了代码。用你的更新。谢谢!

以上是关于如何以编程方式检测可执行文件在运行时所在的目录?的主要内容,如果未能解决你的问题,请参考以下文章

如何编译python(使用cxFreeze)以获取当前工作目录作为可执行文件所在的目录?

linux 中怎么运行py 文件

如何以编程方式将 Google Sheet 脚本发布/部署为 API 可执行文件?

如何在 Linux 中检测文件访问?

如何始终在其所在目录执行 PyInstaller / Platypus 编译的 Python 可执行文件

py2exe 可执行文件以看似随机的方式崩溃