如何以编程方式检测可执行文件在运行时所在的目录?
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)以获取当前工作目录作为可执行文件所在的目录?
如何以编程方式将 Google Sheet 脚本发布/部署为 API 可执行文件?