在应用程序的末尾获取没有应用程序名称的应用程序路径

我正在使用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 

您可以使用dirnamefunction。

使用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()。 这不会返回您正在寻找的路径。