gpt4 book ai didi

c++ - Linux 上运行程序的目录?

转载 作者:太空宇宙 更新时间:2023-11-04 11:57:52 24 4
gpt4 key购买 nike

嘿,我一直在编写一个程序(一种电子书查看类型的东西),它从可执行文件所在的文件夹中的文件夹加载文本文件。这给我带来了一些问题,因为如果我使用命令“./folder/folder/program”从另一个目录运行程序,我的程序将找不到文本,因为工作目录不正确。我不能有一个绝对目录,因为我希望程序是可移植的。有什么方法可以获取可执行文件运行的精确目录,即使它是从不同的目录运行的。我听说可以结合 argc[0] 和 getcwd() 但是当目录中有空格时 argc 被截断,(我想?)所以我想尽可能避免这种情况。

我在 Linux 上使用 g++,提前谢谢

最佳答案

编辑 - 不要使用 getcwd(),它只是用户不在可执行文件所在的位置。

参见 here for details .

在 linux 上/proc/ /exe 或/proc/self/exe 应该是指向您的可执行文件的符号链接(symbolic link)。和其他人一样,我认为更重要的问题是“你为什么需要这个?”使用可执行路径查找辅助文件并不是真正的 UNIX 形式。相反,您可以使用环境变量或默认位置,或遵循其他约定之一来查找辅助文件的位置(即 ~/. rc)。

关于c++ - Linux 上运行程序的目录?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53586204/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com