我正在尝试获取当前可执行文件的文件路径,但最后没有可执行文件名。
我在做:
uint32_t size = sizeof(path);
if (_NSGetExecutablePath(path, &size) == 0) {
}
else {
printf("buffer too small; need size %u\n", size);
}
char* program_name = dirname(path); // To remove executable name from the path
它的路径输出是: / Users / Me / Desktop / TNT / build / Debug /
但是当我打算使用SDL库添加一些gui时,输出路径是错误的:
/Users/Me/Desktop/TNT/build/Debug/TNT.app /
答案 0 :(得分:1)
这没错,是的。
来自http://en.wikipedia.org/wiki/Application_bundle#Mac_OS_X_application_bundles:
应用程序包是目录层次结构,具有顶级 名称以.app扩展名结尾的目录。
TNT.app/是Mac OSX上的工作目录(以及应用程序包的顶级目录)。如果输入命令shell并cd
到目录,则可以确认。