我正在使用xcode,并希望获得我的应用运行的路径,而路径末端没有应用名称,但我尝试过:
printf("%s\n", argv[0]);
它为我的应用程序运行提供了正确的路径,但它以/我的应用名称结束,我该如何删除应用名称?
答案 0 :(得分:1)
您可以使用dirname
功能。
答案 1 :(得分:1)
使用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("/"));
这应该做你想要的,除非我的代码中有任何愚蠢的错误
答案 2 :(得分:1)
使用 dirname
#include <iostream>
#include <libgen.h>
int main(int argc, char* argv[])
{
std::string dir = dirname(argv[0]);
std::cout << dir << std::endl;
}
运行应用程序:
$/data/temp/test
输出:
$/data/temp
答案 3 :(得分:0)
如果您正在寻找等效的bash pwd
,可以使用:
#include <unistd.h>
char *getcwd(char *buf, size_t size);
请注意,如果您之前调用了chdir()。这不会返回你正在寻找的路径。