码迷,mamicode.com
首页 > 其他好文 > 详细

OS X中如何获取当前运行程序的路径

时间:2014-06-12 14:11:47      阅读:252      评论:0      收藏:0      [点我收藏+]

标签:class   blog   code   java   http   com   

OS X的执行程序一般分为两种。一种是控制台程序,一种是带有GUI的OS X应用程序。

控制台程序往往就一个文件构成executable,而GUI应用通常是一个包(即文件夹),里面除了executable之外还有其它资源。

对于一个GUI程序来说,我们可以通过读取Bundle来获得资源文件。那么对于控制台程序来说,如果要获得其执行时的路径就很有必要了。

比如,我做一个OpenCL程序,那么往往会将OpenCL内核源文件与应用放在一起。


在OS X中获得executable当前路径的方法很简单,首先引入头文件——

#include <mach-o/dyld.h>

然后,调用

int _NSGetExecutablePath(char* buf, uint32_t* bufsize)

即可。

这个函数适用于iOS2.0及更高版本以及OS X10.2及更高版本。

下面提供代码例子片段:

bubuko.com,布布扣
bubuko.com,布布扣
#include <mach-o/dyld.h>

int main(void)
{
    char path[512];
    unsigned size = 512;
    _NSGetExecutablePath(path, &size);
    path[size] = \0;
    printf("The path is: %s\n", path);
}
bubuko.com,布布扣
bubuko.com,布布扣

 
顺便提一下,在Linux中要获得当前程序的路径使用readlink接口,引入头文件<unistd.h>即可。其声明为:

int readlink(const char * path ,char * buf,size_t bufsiz);

代码片段:

bubuko.com,布布扣
bubuko.com,布布扣
#include <unistd.h>

int main(void)
{
    char path[512];
    int size = readlink("/proc/self/exe", path, 512);
    path[size] = \0;
    printf("The path is: %s\n", path);
}
bubuko.com,布布扣
bubuko.com,布布扣

OS X中如何获取当前运行程序的路径,布布扣,bubuko.com

OS X中如何获取当前运行程序的路径

标签:class   blog   code   java   http   com   

原文地址:http://www.cnblogs.com/ArRan/p/3782194.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!