终端中传入的相对路径转换为绝对路径

来源:互联网 发布:itunes安装软件 编辑:程序博客网 时间:2024/06/03 09:31
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;}


 
原创粉丝点击