在应用程序的末尾获取没有应用程序名称的应用程序路径
我正在使用xcode,并希望获得我的应用程序运行的路径,而路径末尾没有应用程序名称,但我尝试过:
printf("%s\n", argv[0]);
它给了我正确的路径,我的应用程序运行但它以/我的应用程序名称结束,我该如何删除应用程序名称?
使用dirname
#include #include int main(int argc, char* argv[]) { std::string dir = dirname(argv[0]); std::cout << dir << std::endl; }
运行申请:
$/data/temp/test
输出:
$/data/temp
您可以使用dirname
function。
使用std::string::find_last_of
查找路径分隔符的最后一个实例( /
if * nix, \
if windows)并使用std::string::substr
将所有内容复制到该索引。
示例:
std::string file = argv[0]; std::string path = file.substr(0,file.find_last_of("/"));
这应该做你想要的,除非我的代码中有任何愚蠢的错误
如果您正在寻找相当于bash pwd
,您可以使用:
#include char *getcwd(char *buf, size_t size);
请注意,如果您之前调用过chdir()。 这不会返回您正在寻找的路径。