inline static std::string abs_path(const char* srcpath) { std::string strAbsolutionpath = ""; char abspath[MAX_BUFFER] = {0}; #ifdef _WIN32 if(_fullpath(abspath, srcpath, MAX_BUFFER) != NULL) { if(strstr(srcpath, abspath)) strAbsolutionpath.append(srcpath); else strAbsolutionpath.append(abspath, strlen(abspath)); } else { printf("invalid path!\n"); } #else if(getcwd(abspath, MAX_BUFFER) != NULL) { char *pszfull = (char*)malloc(MAX_BUFFER*sizeof(char*)); memcpy(pszfull, abspath, strlen(abspath)); if(pszfull[0] == '/') strAbsolutionpath.append(srcpath); else { strcat(pszfull, srcpath); strAbsolutionpath.append(pszfull).append("/").append(srcpath); } if(pszfull) free(pszfull); } else { printf("invailed path!\n"); } #endif return strAbsolutionpath; }
终端中传入的相对路径转换为绝对路径
最新推荐文章于 2025-09-19 14:20:59 发布
本文介绍了一个C++函数,用于将相对路径转换为绝对路径。该函数首先检查是否在Windows环境下运行,并使用_fullpath函数获取绝对路径;在其他操作系统中,则通过getcwd和字符串操作来实现相同的功能。

2742

被折叠的 条评论
为什么被折叠?



