1. Shell 版本
#获取当前脚本所在绝对路径
cur_dir=$(cd "$(dirname "$0")"; pwd)
2. C语言版本
#获取当前脚本所在绝对路径
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);