linux 获取当前工作路径

转载于:https://blog.csdn.net/mayi_xiaochaun/article/details/52211244

 

 

1. Shell 版本
    #获取当前脚本所在绝对路径
    cur_dir=$(cd "$(dirname "$0")"; pwd)

2. C语言版本

方法一、用realpath函数。这种方法用于开机启动程序获取自身目录会出错

char current_absolute_path[MAX_SIZE];

//获取当前目录绝对路径

if (NULL == realpath("./", current_absolute_path))

{

    printf("***Error***\n");

    exit(-1);

}

strcat(current_absolute_path, "/");

printf("current absolute path:%s\n", current_absolute_path);

方法二、用getcwd函数。这种方法用于开机启动程序获取自身目录会出错

char current_absolute_path[MAX_SIZE];

//获取当前目录绝对路径

if (NULL == getcwd(current_absolute_path, MAX_SIZE))

{

    printf("***Error***\n");

    exit(-1);

}

printf("current absolute path:%s\n", current_absolute_path);


方法三、用readlink函数。这种方法最可靠,可用于开机启动程序获取自身目录

char current_absolute_path[MAX_SIZE];

//获取当前程序绝对路径

int cnt = readlink("/proc/self/exe", current_absolute_path, MAX_SIZE);

if (cnt < 0 || cnt >= MAX_SIZE)

{

    printf("***Error***\n");

    exit(-1);

}

//获取当前目录绝对路径,即去掉程序名

int i;

for (i = cnt; i >=0; --i)

{

    if (current_absolute_path[i] == '/')

    {

        current_absolute_path[i+1] = '\0';

        break;

    }

}

printf("current absolute path:%s\n", current_absolute_path);

你可能感兴趣的:(C++)