首页 > 代码库 > mac平台获取app路径
mac平台获取app路径
原本只是为了在mac平台简单地调用fopen、fwrite等函数,发现fopen需要包含绝对路径,才能正常使用;否则,即使调试时可以创建文件,直接调用app执行时,文件不会被创建。
为此,需要获取执行文件的绝对路径。用到函数_NSGetExecutablePath。这个函数获取的路径是app包里的执行文件的路径,直接在后面加上‘/../../../../‘到app路径也是不行的,大概是访问权限的问题,会导致fopen失败。
所以先将获取的路径处理一下,得到app路径,再在fopen中调用,经证实是OK的。
代码如下:
// get app path. #include <mach-o/dyld.h> char g_path[MAXPATHLEN+1]; - (void)getAppPath { uint32_t size = sizeof(g_path); if (_NSGetExecutablePath(g_path, &size) == 0) printf("executable path is %s\n", g_path); else printf("buffer too small; need size %u\n", size); // /Users/blade/proj//Output/MacOS/bin/TestTool.app/Contents/MacOS/TestTool if(strlen(g_path)) { int end,count = 0; for(int i = strlen(g_path) - 1; i>0; i--) { if(g_path[i] == '/') { count++; } if(count == 4) { end = i; break; } } if(end > 0) { memset(g_path+end,0,strlen(g_path)-end); } } }
mac平台获取app路径
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。